Требуется ли API SMS Retriever в аутентификации Firebase для автоматического заполнения otp? - PullRequest
0 голосов
/ 17 декабря 2018

Я использую Firebase auth api для подтверждения номера телефона пользователя.В настоящее время в моем случае у меня есть один экран, где пользователь поставил номер телефона и на втором экране отп.Согласно документации firebase автоматическое получение OTP и запуск процесса проверки большую часть времени.Поэтому мой вопрос: он уже реализовал этот SMS Retriever API в Firebase Auth SDK или я должен сам реализовать его для получения SMS и автоматического заполнения OTP.

1 Ответ

0 голосов
/ 17 декабря 2018

Неа.нам не нужно управлять сценарием получения SMS.

Если устройство содержит одну и ту же SIM-карту, оно автоматически управляется методом PhoneAuthProvider.OnVerificationStateChangedCallbacks onVerificationCompleted(PhoneAuthCredential phoneAuthCredential).

Фрагмент:

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();
        }
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...