删除 SafetyNet 后 Flutter firebase_auth 崩溃

use*_*021 5 firebase-authentication flutter safetynet

我的 flutter 应用程序正在使用 firebase_auth (v 4.2.1)插件来验证电话号码,效果非常好。但后来我收到了来自 Google Play 的“迁移您的 Google SafetyNet Attestation API”警告。当我搜索时,发现“firebase_auth”插件中使用了“SafetyNet”。至于这个问题的解决方案,我找到了这个链接(Flutter Play Store警告:play-services-safetynet 2022)。

dependencies {
  implementation platform('com.google.firebase:firebase-bom:30.3.2')
  implementation 'com.google.firebase:firebase-auth'
}
configurations.all {
    exclude group: 'com.google.android.gms', module: 'play-services-safetynet'
}
Run Code Online (Sandbox Code Playgroud)

它从依赖项列表中删除“SafetyNet”。现在,当尝试验证电话号码并收到以下错误时,应用程序崩溃了。

E/AndroidRuntime(15766): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/safetynet/SafetyNet;
E/AndroidRuntime(15766):    at com.google.firebase.auth.internal.zzf.zza(com.google.firebase:firebase-auth@@21.1.0:2)
E/AndroidRuntime(15766):    at com.google.firebase.auth.FirebaseAuth.zzI(com.google.firebase:firebase-auth@@21.1.0:26)
E/AndroidRuntime(15766):    at com.google.firebase.auth.PhoneAuthProvider.verifyPhoneNumber(com.google.firebase:firebase-auth@@21.1.0:2)
E/AndroidRuntime(15766):    at io.flutter.plugins.firebase.auth.PhoneNumberVerificationStreamHandler.onListen(PhoneNumberVerificationStreamHandler.java:180)
E/AndroidRuntime(15766):    at io.flutter.plugin.common.EventChannel$IncomingStreamRequestHandler.onListen(EventChannel.java:218)
E/AndroidRuntime(15766):    at io.flutter.plugin.common.EventChannel$IncomingStreamRequestHandler.onMessage(EventChannel.java:197)
E/AndroidRuntime(15766):    at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/AndroidRuntime(15766):    at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
E/AndroidRuntime(15766):    at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(D8$$SyntheticClass)
E/AndroidRuntime(15766):    at android.os.Handler.handleCallback(Handler.java:751)
E/AndroidRuntime(15766):    at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(15766):    at android.os.Looper.loop(Looper.java:154)
E/AndroidRuntime(15766):    at android.app.ActivityThread.main(ActivityThread.java:6077)
E/AndroidRuntime(15766):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(15766):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
E/AndroidRuntime(15766):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
E/AndroidRuntime(15766): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.safetynet.SafetyNet" on path: DexPathList[[zip file "/data/app/.../base.apk"],nativeLibraryDirectories=[/data/app/.../lib/x86, /data/app/.../base.apk!/lib/x86, /system/lib, /vendor/lib]]
E/AndroidRuntime(15766):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/AndroidRuntime(15766):    at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
E/AndroidRuntime(15766):    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/AndroidRuntime(15766):    ... 16 more
Run Code Online (Sandbox Code Playgroud)

我不确定“SafetyNet”的修复是否正确。如果正确,这个新问题的解决方案是什么?或者“SafetyNet”问题的最佳解决方案是什么