Я учусь использовать FirebaseAuth, используя онлайн-учебник. Я мог успешно получить код подтверждения с помощью SMS, но как только я получил SMS, приложение перестало работать. Не могли бы вы помочь мне.
Я работаю над Android Studio, и я кодирую в Kotlin.
Вот мой код,
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sign_in)
mAuth = FirebaseAuth.getInstance()
phoneNumber = findViewById(R.id.etxPhoneNumber)
code = findViewById(R.id.etxCode)
btnCode.setOnClickListener { view: View? ->
progress.visibility = View.VISIBLE
verify()
}
}
private fun verificationCallbacks() {
mCallbacks = object : PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
override fun onVerificationCompleted(credential: PhoneAuthCredential) {
progress.visibility = View.INVISIBLE
signIn(credential)
}
override fun onVerificationFailed(p0: FirebaseException) {
}
override fun onCodeSent(p0: String, p1: PhoneAuthProvider.ForceResendingToken) {
super.onCodeSent(p0, p1)
}
}
}
private fun verify() {
verificationCallbacks()
val phoneNo = etxPhoneNumber.text.toString()
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNo,
60,
TimeUnit.SECONDS,
this,
mCallbacks
)
}
private fun signIn(credential: PhoneAuthCredential) {
mAuth.signInWithCredential(credential)
.addOnCompleteListener { task: Task<AuthResult> ->
if (task.isSuccessful) {
toast("Logged in successfully")
startActivity(Intent(this, MainActivity::class.java))
}
}
}
Кажется вроде проблема не решена. Ниже приводится Logcat (ошибка).
2020-01-25 10:37:08.228 7511-7511/? E/Zygote: v2 2020-01-25 10:37:08.231 7511-7511/? E/Zygote: accessInfo : 0 2020-01-25 10:37:08.489 7511-7511/com.example.testapp E/FontFamily: Error mapping font file /data/data/com.android.settings/app_fonts/Cooljazz/DroidSans.ttf 2020-01-25 10:37:08.489 7511-7511/com.example.testapp E/FontFamily: Error mapping font file /data/data/com.android.settings/app_fonts/Cooljazz/DroidSans-Bold.ttf 2020-01-25 10:37:08.715 7511-7511/com.example.testapp E/ViewRootImpl@4d50979[MainActivity]: ViewRootImpl #2 Surface is not valid. 2020-01-25 10:37:11.915 7511-7511/com.example.testapp E/BoostFramework: BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: Didn't find class "com.qualcomm.qti.Performance" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib64, /vendor/lib64]] 2020-01-25 10:37:11.987 7511-7511/com.example.testapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.testapp, PID: 7511
java.lang.IllegalArgumentException: Given String is empty or null
at com.google.android.gms.common.internal.Preconditions.checkNotEmpty(Unknown Source)
at com.google.firebase.auth.PhoneAuthProvider.verifyPhoneNumber(com.google.firebase:firebase-auth@@19.2.0:7)
at com.example.testapp.SignIn.verify(SignIn.kt:70)
at com.example.testapp.SignIn.access$verify(SignIn.kt:19)
at com.example.testapp.SignIn$onCreate$1.onClick(SignIn.kt:41)
at android.view.View.performClick(View.java:6205)
at android.widget.TextView.performClick(TextView.java:11103)
at android.view.View$PerformClick.run(View.java:23653)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)