在Firebase上进行电话身份验证时出错 [英] Error while doing phone authentication on firebase
问题描述
在Firebase上进行电话号码身份验证时,我因此错误消息而崩溃.请帮忙.
com.russvkm.chathut是我的包裹名称
E/AndroidRuntime:致命异常:main流程:com.russvkm.chathut,PID:24323java.lang.NoClassDefFoundError:无法解决以下问题:Landroidx/browser/customtabs/CustomTabsIntent $ Builder;在com.google.firebase.auth.internal.RecaptchaActivity.zza(com.google.firebase:firebase-auth @@ 20.0.0:92)com.google.firebase.auth.api.internal.zzeq.zza(com.google.firebase:firebase-auth @@ 20.0.0:79)com.google.firebase.auth.api.internal.zzeq.onPostExecute(com.google.firebase:firebase-auth @@ 20.0.0:88)在android.os.AsyncTask.finish(AsyncTask.java:695)在android.os.AsyncTask.access $ 600(AsyncTask.java:180)在android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:712)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:201)在android.app.ActivityThread.main(ActivityThread.java:6826)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:547)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)原因:java.lang.ClassNotFoundException:找不到类"androidx.browser.customtabs.CustomTabsIntent $ Builder";在路径上:DexPathList [[zip文件''/data/app/com.russvkm.chathut-22XI8m2uPLL7Q6CgxXHPiw==/base.apk"]],nativeLibraryDirectories=[/data/app/com.russvkm.chathut-22XI8m2uPLL7Q6=CgxHP/arm,/system/lib,/vendor/lib]]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)在java.lang.ClassLoader.loadClass(ClassLoader.java:379)在java.lang.ClassLoader.loadClass(ClassLoader.java:312)在com.google.firebase.auth.internal.RecaptchaActivity.zza(com.google.firebase:firebase-auth @@ 20.0.0:92)com.google.firebase.auth.api.internal.zzeq.zza(com.google.firebase:firebase-auth @@ 20.0.0:79)com.google.firebase.auth.api.internal.zzeq.onPostExecute(com.google.firebase:firebase-auth @@ 20.0.0:88)在android.os.AsyncTask.finish(AsyncTask.java:695)在android.os.AsyncTask.access $ 600(AsyncTask.java:180)在android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:712)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:201)在android.app.ActivityThread.main(ActivityThread.java:6826)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:547)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)I/Process:正在发送信号.PID:24323 SIG:9
我的应用程序与Firebase服务器通信良好,因为在进行电子邮件身份验证时我没有发现任何错误或崩溃.
我正在使用以下方法进行身份验证
PhoneAuthProvider.verifyPhoneNumber(PhoneAuthOptions.newBuilder(mAuth).setPhoneNumber(phoneNumber).setActivity(this).setTimeout(60,TimeUnit.SECONDS).setCallbacks(object:PhoneAuthProvider.OnVerificationStateChangedCallbacks(){重写fun onVerificationCompleted(credential:PhoneAuthCredential){dismissDialog()val smsCode = credential.smsCodeLog.i("SMS代码",smsCode !!)signInWithPhoneAuthCredential(凭据)}重写fun onVerificationFailed(p0:FirebaseException){Toast.makeText(this @ Register,p0.message,Toast.LENGTH_SHORT).show()}重写fun onCodeSent(verificationId:字符串,令牌:PhoneAuthProvider.ForceResendingToken){super.onCodeSent(verificationId,令牌)numberLinearLayout.visibility = View.GONEotpLinearLayout.visibility = View.VISIBLEstoredVerificationId =验证IDresendToken =令牌dismissDialog()}}).建造())
程序没有执行otpSent方法,它在没有发送otp的情况下崩溃了.
最新的Firebase身份验证版本已进行了一些重大更改,例如用于人工验证的Recaptcha.它需要使用浏览器进行验证,请在下面添加.并了解有关更改的信息向我推荐
实现'androidx.browser:browser:1.2.0'
更新:如果要避免人工验证,则需要在Google云控制台中为您的Firebase项目启用Safetynet.请参阅..>
While doing phone number authentication on firebase i'm getting crash with this error message. please help.
com.russvkm.chathut is my package name
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.russvkm.chathut, PID: 24323
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:201)
at android.app.ActivityThread.main(ActivityThread.java:6826)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.browser.customtabs.CustomTabsIntent$Builder" on path: DexPathList[[zip file "/data/app/com.russvkm.chathut-22XI8m2uPLL7Q6CgxXHPiw==/base.apk"],nativeLibraryDirectories=[/data/app/com.russvkm.chathut-22XI8m2uPLL7Q6CgxXHPiw==/lib/arm, /system/lib, /vendor/lib]]
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:201)
at android.app.ActivityThread.main(ActivityThread.java:6826)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
I/Process: Sending signal. PID: 24323 SIG: 9
my application is communicating well with firebase server as i don't find any error or crash while doing email authentication.
I'm using following approach to authenticate
PhoneAuthProvider.verifyPhoneNumber(
PhoneAuthOptions.newBuilder(mAuth)
.setPhoneNumber(phoneNumber)
.setActivity(this)
.setTimeout(60,TimeUnit.SECONDS)
.setCallbacks(object:PhoneAuthProvider.OnVerificationStateChangedCallbacks(){
override fun onVerificationCompleted(credential:PhoneAuthCredential) {
dismissDialog()
val smsCode=credential.smsCode
Log.i("SMS code",smsCode!!)
signInWithPhoneAuthCredential(credential)
}
override fun onVerificationFailed(p0: FirebaseException) {
Toast.makeText(this@Register,p0.message,Toast.LENGTH_SHORT).show()
}
override fun onCodeSent(verificationId: String, token: PhoneAuthProvider.ForceResendingToken) {
super.onCodeSent(verificationId, token)
numberLinearLayout.visibility=View.GONE
otpLinearLayout.visibility=View.VISIBLE
storedVerificationId=verificationId
resendToken=token
dismissDialog()
}
})
.build()
)
programme isn't executing otpSent method it is being crashed without sending otp.
Some major changes have been made in the latest Firebase auth version, like Recaptcha for human verification.it needs a browser to verify so, Add below depen. and read about changes refer me
implementation 'androidx.browser:browser:1.2.0'
Update : If you want to avoid human verification, you need to enable safetynet in google cloud console for your firebase project refer this.
这篇关于在Firebase上进行电话身份验证时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!