firebase - Firebase未将OTP发送到设备中的电话号码

标签 firebase flutter dart firebase-authentication one-time-password

我在flutter应用程序中实现了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。

    最佳答案

    实际上,我认为这实际上是预期的和预期的用法。 (或接近它)就像Firebase可以通过推送通知确认电话身份一样,它甚至不发送文本,因为它已经过验证。 (通常仅在验证一次电话后才会发生)。但是,如果将其发送到设备所连接的电话号码以外的其他电话号码,则它将无法使用系统中的以前的VerificationID。

    因此,我建议检查一下代码的哪些部分,而不是。检查代码和授权是否失败,或者它将继续到程序的下一部分完全授权。只是为了确保在其中添加一些打印语句。但是我很确定这应该是它的工作方式。

    关于firebase - Firebase未将OTP发送到设备中的电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60156322/

    相关文章:

    android - 如何在 flutter 中导航到新屏幕,同时仍保留底部NavigationBar

    javascript - 如何从 Firebase 获取服务器时间

    java - Android Studio 和 Firebase : CardView Loading Problem

    flutter_gauge 小部件不会更新 setState 上的索引值

    flutter - 如何为flutter应用程序添加android通知 channel ID以在应用程序处于后台时修复通知

    dart - Flutter函数参数通过引用传递

    angular - 具有 Firebase 身份验证的拦截器

    Firebase - 权限不足,即使我是项目所有者

    dart - 如何让一列 2 个文本小部件连续位于中心 x 轴的任一侧

    flutter - 如何使用 inkwell 在 flutter 中进行填充