主要的问题是,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商店应用程序。
2条答案
按热度按时间fruv7luv1#
我以前也遇到过同样的问题,花了大约3天的时间来探索为什么!
你的代码工作正常,我没有看到任何问题,但是,我修复了我的**“只是从模拟器/模拟器删除应用程序,并再次重建应用程序”,然后检查OTP
如果仍然不起作用,请仔细检查您是否为“删除”和“发布”模式使用了正确的SHA证书
还有一件更重要的事情--仔细检查您是否已经将发行版密钥库的正确SHA-1或SHA-256指纹**添加到Firebase控制台。
并确保将新的google-services.json文件替换为旧文件
最重要的一步是“不要测试OTP而不删除应用程序和重建它,直到你得到的OTP代码”,然后你可以测试它而不继续删除它。
dfuffjeb2#
我已经找到了问题,问题是在自动代码检测从设备.当OTP被自动检测然后手动OTP不工作,这是检查OTP功能.你需要从验证完成导航的功能,而你第一次发送移动的号码进行验证