pra*_*u r 1 android firebase firebase-authentication flutter
这个问题与其他任何问题都不相似。我已经尝试了许多解决方案,来自App crashes with firebase phone auth,在获取 firebase phone auth OTP 时出错
Android 应用程序在 firebase 电话身份验证时崩溃,但没有任何效果。
在我的颤振应用程序(android)中,我使用了 firebase 电话身份验证。当我调用 firebase 的“verifyPhoneNumber”方法发送 OTP 时,我的应用程序崩溃并退出,没有留下任何错误消息。
这是我的代码
final FirebaseAuth _auth = FirebaseAuth.instance;
Future sendOTP(String mobNo, BuildContext context, UserData _userData) async {
try {
_auth.verifyPhoneNumber(
phoneNumber: mobNo,
verificationCompleted: (val) {
print("verification completed val = $val");
},
verificationFailed: (val) {
print("verification failed val = $val");
},
codeSent: (String verificationId, [int forceResendingToken]) {
print("code sent to $mobNo");
Navigator.pushNamed(context, '/get_otp', arguments: {
'verificationId': verificationId,
'UserData': _userData,
});
},
codeAutoRetrievalTimeout: (val) {
print("code auto retrieval timeout val = $val");
});
} catch (e) {
print("auth error = $e");
}
}
Run Code Online (Sandbox Code Playgroud)
我在我的 firebase 项目中添加了我的 SHA-1、SHA-256 证书,我尝试更改 firebase_auth、fiebase_core 的版本。但是,没有任何效果。我尝试在所有行中添加断点。当到达此行时,应用程序退出。
_auth.verifyPhoneNumber(它没有进一步进行。请帮我解决这个问题!!
这是我的调试控制台日志
E/AndroidRuntime(17712): java.lang.NoClassDefFoundError: Failed resolution of:
Landroidx/browser/customtabs/CustomTabsIntent$Builder;
E/AndroidRuntime(17712): at
com.google.firebase.auth.internal.RecaptchaActivity.zza(com.google.firebase:firebase-
auth@@20.0.2:13)
E/AndroidRuntime(17712): at com.google.android.gms.internal.firebase-auth-
api.zztw.zzb(com.google.firebase:firebase-auth@@20.0.2:7)
E/AndroidRuntime(17712): at com.google.android.gms.internal.firebase-auth-
api.zztw.onPostExecute(Unknown Source:2)
E/AndroidRuntime(17712): at android.os.AsyncTask.finish(AsyncTask.java:755)
E/AndroidRuntime(17712): at android.os.AsyncTask.access$900(AsyncTask.java:192)
E/AndroidRuntime(17712): at
android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:772)
E/AndroidRuntime(17712): at android.os.Handler.dispatchMessage(Handler.java:107)
E/AndroidRuntime(17712): at android.os.Looper.loop(Looper.java:228)
E/AndroidRuntime(17712): at
android.app.ActivityThread.main(ActivityThread.java:7826)
E/AndroidRuntime(17712): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(17712): at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/AndroidRuntime(17712): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:981)
E/AndroidRuntime(17712): Caused by: java.lang.ClassNotFoundException: Didn't find
class "androidx.browser.customtabs.CustomTabsIntent$Builder" on path: DexPathList[[zip
file "/data/app/com.creda.location_project-
1fyv3Q9ek4vLZKMcRkGyDQ==/base.apk"],nativeLibraryDirectories=
[/data/app/com.creda.location_project-1fyv3Q9ek4vLZKMcRkGyDQ==/lib/arm64,
/data/app/com.creda.location_project-1fyv3Q9ek4vLZKMcRkGyDQ==/base.apk!/lib/arm64-v8a,
/system/lib64, /system/product/lib64]]
Run Code Online (Sandbox Code Playgroud)
在新的 Firebase auth 版本 i,e 20.0.0 中,他们进行了重大更改,例如 Recaptcha、SafetyNet 以进行人工验证。要修复崩溃,您可以添加
实现“androidx.browser:browser:1.3.0”
此依赖项仅修复崩溃,但用户体验仍然不佳,因为 firebase 将打开浏览器以验证 Recaptcha 。
Firebase 引用“只有在 SafetyNet 不可用或您的设备未通过可疑检查时才会触发 reCAPTCHA 流程。但是,您应该确保这两种情况都正常工作。” 因此,要启用 SafetyNet,请按照以下步骤操作,或者您也可以访问Firebase Auth了解更多信息。
转到谷歌云控制台,选择您的项目。
单击导航菜单并选择 APIs & services,然后选择 Dashboard 。
点击启用api和服务并启用api“Android设备验证”。
在 firebase 项目设置中添加 SHA 256。(调试并发布两者)
下载并替换项目中最新的 google-services.json 文件。
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |