android - 在 otp 自动填充的 Firebase 身份验证中是否需要 SMS Retriever API?

标签 android firebase firebase-authentication android-permissions

我正在使用 Firebase auth api 来验证用户电话号码。目前在我的情况下,我有一个屏幕,用户可以在其中输入电话号码,而在第二个屏幕上可以输入 otp。根据文档 firebase 大部分时间自动检索 otp 并启动​​验证过程。 所以我的问题是它已经在 Firebase Auth SDK 中实现了这个 SMS Retriever API 或者我应该自己实现它来检索 SMS 并自动填充 OTP。

最佳答案

没有。我们不需要管理短信检索场景。

如果设备包含相同的 SIM 卡,它由 onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) 方法中的 PhoneAuthProvider.OnVerificationStateChangedCallbacks 自动管理。

fragment :

private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

        @Override
        public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
            Toast.makeText(FCMsmsTest.this, "onVerificationCompleted " + phoneAuthCredential.toString(), Toast.LENGTH_SHORT).show();
            signInWithPhoneAuthCredential(phoneAuthCredential);
        }

        @Override
        public void onVerificationFailed(FirebaseException e) {
            Toast.makeText(FCMsmsTest.this, "onVerificationFailed " + e.toString(), Toast.LENGTH_SHORT).show();

            if (e instanceof FirebaseAuthInvalidCredentialsException) {
                Toast.makeText(FCMsmsTest.this, "Invalid Request " + e.toString(), Toast.LENGTH_SHORT).show();
            } else if (e instanceof FirebaseTooManyRequestsException) {
                Toast.makeText(FCMsmsTest.this, "The SMS quota for the project has been exceeded " + e.toString(), Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onCodeSent(String verificationId,
                               PhoneAuthProvider.ForceResendingToken token) {
            Toast.makeText(FCMsmsTest.this, "onCodeSent " + verificationId, Toast.LENGTH_SHORT).show();
            editText.setText("");

            mVerificationId = verificationId;
            PhoneAuthProvider.ForceResendingToken mResendToken = token;

            showDialog();
        }
    };

关于android - 在 otp 自动填充的 Firebase 身份验证中是否需要 SMS Retriever API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53809300/

相关文章:

Android 相机权限 -> PlayStore

javascript - Firebase - Vue 数据库集成不起作用

Firebase 电话身份验证在 Flutter 应用程序中不起作用,无论是在 iOS 模拟器还是在真实设备中

angularjs - 即使在将域列入白名单后,firebase auth 域也未获得授权

android - 如何在按下 EditText 时阻止 Scrollview 将背景图像移动到顶部?

android - 如何使用 HttpURLConnection 而不是 Volley 获取 JSON 对象?

javascript - 避免发件人也收到 firestore 通知

Android 主题/兼容性问题 : "No resource found that matches the given name"

android - 如何知道在 firebase DB 中添加了哪个新条目?

android - 有没有办法强制显示 Jetpack Compose 文本?