Sac*_*nde 15 java android firebase-authentication
我通过 Firebase 在 Android Studio 中使用电话身份验证,我启用了电话登录并在 Firebase 项目中添加了 SHA-1 和 SHA-256。这是我所有的依赖项:
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
testImplementation 'junit:junit:4.13.1'
implementation 'com.hbb20:ccp:2.4.0'
implementation 'com.google.firebase:firebase-auth:20.0.0'
implementation 'com.google.firebase:firebase-analytics'
implementation platform('com.google.firebase:firebase-bom:26.0.0')
implementation 'com.google.android.gms:play-services-safetynet:17.0.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
Run Code Online (Sandbox Code Playgroud)
这是错误日志:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.securechat, PID: 24159
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/browser/customtabs/CustomTabsIntent$Builder;
at com.google.firebase.auth.internal.RecaptchaActivity.zza(com.google.firebase:firebase-auth@@20.0.0:92)
at com.google.firebase.auth.api.internal.zzeq.zza(com.google.firebase:firebase-auth@@20.0.0:79)
at com.google.firebase.auth.api.internal.zzeq.onPostExecute(com.google.firebase:firebase-auth@@20.0.0:88)
at android.os.AsyncTask.finish(AsyncTask.java:695)
at android.os.AsyncTask.access$600(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6692)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.browser.customtabs.CustomTabsIntent$Builder" on path: DexPathList[[zip file "/data/app/com.example.securechat-GUvvd01g4yeRO2eP4pBFfA==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.securechat-GUvvd01g4yeRO2eP4pBFfA==/lib/arm64, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.google.firebase.auth.internal.RecaptchaActivity.zza(com.google.firebase:firebase-auth@@20.0.0:92)
at com.google.firebase.auth.api.internal.zzeq.zza(com.google.firebase:firebase-auth@@20.0.0:79)
at com.google.firebase.auth.api.internal.zzeq.onPostExecute(com.google.firebase:firebase-auth@@20.0.0:88)
at android.os.AsyncTask.finish(AsyncTask.java:695)
at android.os.AsyncTask.access$600(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6692)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Run Code Online (Sandbox Code Playgroud)
小智 30
执行 androidx.browser:browser:1.2.0
使用这个依赖来解决问题。
Him*_*kur 19
在新的 Firebase 身份验证版本中,他们进行了重大更改,例如 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 文件。
Pra*_*rma 13
如果有人来自react-native,经过四处搜索后,我找到了这个临时解决方案。
添加以下内容
implementation "androidx.browser:browser:1.2.0"
Run Code Online (Sandbox Code Playgroud)
进入android/app/build.gradle依赖项解决了问题。
由于您使用的是firebase-bomdependency,因此该库决定您使用的所有 Firebase SDK 的版本。这意味着您不应在 gradle 文件中指定任何其他 Firebase SDK 的版本号。
因此,从以下位置删除版本号firebase-auth:
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-analytics'
implementation platform('com.google.firebase:firebase-bom:26.0.0')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10824 次 |
| 最近记录: |