OTP не приходит, я получаю идентификатор подтверждения, и номер тестирования также работает

Это функция, которую я использую для создания OTP и отправки OTP. OTP пришел один раз, но после этого OTP не приходит. Я даже пробовал 2 разных кода страны и номера.

class AuthService with ChangeNotifier {
  final FirebaseAuth _auth = FirebaseAuth.instance;
  //Sign In
  String userphone = "";
  String verificationId;
  String errorMessage = "";

  Future verifyPhone(String phonenumber) async {
    final PhoneVerificationFailed verificationFailed =
        (FirebaseAuthException authException) {
      print("Auth Exception is ${authException.message}");
    };

    final PhoneCodeSent codeSent =
        (String verificationId, [int forceResendingToken]) async {
      print("verification id is $verificationId");
      this.verificationId = verificationId;
    };

    final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout =
        (String verificationId) {
      this.verificationId = verificationId;
    };

    await _auth.verifyPhoneNumber(
      phoneNumber: "+7" + phonenumber,
      verificationCompleted: null,
      verificationFailed: verificationFailed,
      codeSent: codeSent,
      codeAutoRetrievalTimeout: codeAutoRetrievalTimeout,
      timeout: const Duration(seconds: 60),
    );
  }

  Future signIn({@required String smsCode, context}) async {
    AuthCredential authCredential = PhoneAuthProvider.credential(
      verificationId: verificationId,
      smsCode: smsCode,
    );
    UserCredential result = await _auth.signInWithCredential(authCredential);
    User user = result.user;
    await checkUser(result);
    return _userFromFirebase(user);
  }
  }
}

Пользовательская кнопка, которую я использую для запуска генерации otp. Я пробовал на эмуляторе, а также на моем реальном устройстве.

CustomButton(
                buttonName: "Generate OTP",
                function: () async {
                  if (_formKeySignIn.currentState.validate() &&
                      phonenumber.length == 10) {
                    Provider.of<AuthService>(context, listen: false).userphone =
                        phonenumber;
                    
                    Provider.of<AuthService>(context, listen: false)
                        .verifyPhone(phonenumber);

                    widget.changeView();
                  } else {
                    setState(() {
                      error = "Please enter a valid phone number";
                    });
                  }
                },
              ),

попробуйте этот stackoverflow.com/a/70003131/12767429

Ahmed Raza 09.05.2022 09:32

извините, не помогает

zerochill 09.05.2022 10:25
Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
0
2
19
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Код правильный! Ошибка, которую я делал, заключалась в том, что я также должен добавить коды SHA из раздела подписи приложений из Play Publisher в Firebase вместе с кодом SHA ваших приложений. Затем снова загрузите json-файл служб Google, замените json-файл вашего приложения и снова создайте пакет приложений.

Другие вопросы по теме