Firebase не отправляет OTP на номер телефона в устройстве - PullRequest
0 голосов
/ 10 февраля 2020

Я внедрил firebase otp в своем приложении для флаттера

  • Когда я устанавливаю приложение на свое устройство и запрашиваю тот же номер на этом устройстве, оно не отправляет мне сообщение. Но когда я меняю номер, он отправляет сообщение

  • Поэтому я сменил устройство и попытался отправить предыдущий номер, оно успешно отправило сообщение. Затем я использовал номер на втором устройстве, и он не отправил сообщение

* Когда я использую тот же номер на устройстве, он не отправляет OTP

Вот код для отправки otp

  Future<void> verifyPhone() async {
    final PhoneCodeAutoRetrievalTimeout autoRetrieve = (String verID) {
      this.verificationId = verID;
    };
    final PhoneCodeSent smsCodeSent = (String verId, [int forceCodeResend]) {
      this.verificationId = verId;
    };
    final PhoneVerificationCompleted verifiedSuccess =
        (AuthCredential phoneAuthCredential) {
      print('verified');
    };
    final PhoneVerificationFailed verifyFailed = (AuthException exception) {
      print('${exception.message}');
    };

    await FirebaseAuth.instance.verifyPhoneNumber(
        phoneNumber: widget.phone,
        timeout: const Duration(seconds: 5),
        verificationCompleted: verifiedSuccess,
        verificationFailed: verifyFailed,
        codeSent: smsCodeSent,
        codeAutoRetrievalTimeout: autoRetrieve);

    log("OTP sent");
  }

Это код для проверки OTP

signIn() async{
    final AuthCredential credential = PhoneAuthProvider.getCredential(
      verificationId: verificationId,
      smsCode: enteredOtp,
    );
    await FirebaseAuth.instance.signInWithCredential(credential).then((user) {
      //SOME CODE HERE
    }).catchError((e) {
      showAlert(
        context: context,
        title: "Empty or Invalid OTP",
      );
      log("Invalid OTP");
    });
  }

Что здесь не так? Как я могу это исправить и получить otp для того же номера в устройстве.

1 Ответ

1 голос
/ 25 февраля 2020

На самом деле, я считаю, что это действительно ожидаемое и предполагаемое использование. (Или близко к этому), как будто Firebase может подтвердить личность телефона посредством уведомлений pu sh, он даже не отправляет текст, так как он уже проверен. (Обычно это происходит, только если телефон проверен один раз). Но если вы отправляете его на номер телефона, отличный от номера телефона, к которому подключается устройство, тогда он не сможет использовать предыдущий ID проверки в системе.

Поэтому я бы предложил проверить, какие части функции кода и нет. Проверьте, не произошел ли сбой кода и авторизации, или он перейдет к следующей части программы, полностью авторизованной. Добавьте туда несколько печатных операторов, чтобы убедиться. Но я уверен, что так и должно быть.

...