flutter Firebase OTP验证不适用于Google Play应用程序,但适用于解锁和发布模式

hk8txs48  于 2023-11-21  发布在  Flutter
关注(0)|答案(2)|浏览(150)

主要的问题是,OTP验证的响应方式与其在调试模式下的响应方式不同,即使是在测试编号的播放存储中也是如此

@override
  Future checkOtp(String verificationId, String smsCode) async{
    try{
      showLoadingDialog();
      PhoneAuthCredential credential = PhoneAuthProvider.credential(verificationId: verificationId, smsCode: smsCode);
      var result = await _auth.signInWithCredential(credential)
          .then((value) {
            var user = value.user;
            if (kDebugMode) {
              print(user);
              print(value);
            }
            if (value.additionalUserInfo?.isNewUser == true) {
              Get.offNamed( RouteName.infoScreen,arguments: {
                "user":user
              });
            } else {
              Get.offNamed( RouteName.homeScreen,arguments: {
                "user":user
              });
              Utils.snackBar("Successfull", "Congrats on your successfully registration");

      }      return value;
          });
      return result;
    } catch(e){
      hideLoadingDialog();
      handler.handleFirebaseLoginErrors(e);
      bool result = false;
      if(e.toString()=="[firebase_auth/invalid-verification-code] The verification code from SMS/TOTP is invalid. Please check and enter the correct verification code again.") {
        Utils.snackBar("Invalid Otp", "Please Try with another otp.");
        result = true;
      }
      return result;
    }
  }`

字符串
这是我的职责
我已经把所有的SHA1和SHA 256密钥从Play商店以及从Android工作室.在模拟器其工作完美.即使我找不到任何日志期待这-

07:43:12.501 12725-12806 mali_winsys             com.updevelop.wellness_z_mvvm        D  EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
2023-11-18 07:43:14.466 12725-12806 Surface                 com.updevelop.wellness_z_mvvm        D  Surface::disconnect(this=0x7a2bece000,api=1)
2023-11-18 07:43:14.469 12725-12725 View                    com.updevelop.wellness_z_mvvm        D  [Warning] assignParent to null: this = android.widget.FrameLayout{65c5d03 V.E...... ......ID 0,0-690,137}
2023-11-18 07:43:14.469  1332-1332  WindowManager           system_server                        V  mCurrentFocus: Window{ae17056 u0 com.updevelop.wellness_z_mvvm/com.updevelop.wellness_z_mvvm.MainActivity} newFocus Window{ae17056 u0 com.updevelop.wellness_z_mvvm/com.updevelop.wellness_z_mvvm.MainActivity}


当我尝试通过Google Play商店应用程序。

fruv7luv

fruv7luv1#

我以前也遇到过同样的问题,花了大约3天的时间来探索为什么!
你的代码工作正常,我没有看到任何问题,但是,我修复了我的**“只是从模拟器/模拟器删除应用程序,并再次重建应用程序”,然后检查OTP
如果仍然不起作用,请仔细检查您是否为“删除”和“发布”模式使用了正确的SHA证书
还有一件更重要的事情--仔细检查您是否已经将发行版密钥库的正确
SHA-1或SHA-256指纹**添加到Firebase控制台。
并确保将新的google-services.json文件替换为旧文件
最重要的一步是“不要测试OTP而不删除应用程序和重建它,直到你得到的OTP代码”,然后你可以测试它而不继续删除它。

dfuffjeb

dfuffjeb2#

我已经找到了问题,问题是在自动代码检测从设备.当OTP被自动检测然后手动OTP不工作,这是检查OTP功能.你需要从验证完成导航的功能,而你第一次发送移动的号码进行验证

相关问题