IOS:Firebase Phone 身份验证在试飞中突然停止工作



我正在开发一个使用Firebase电话号码身份验证(SMS OTP(的颤振应用程序。它在Android上运行良好,但在iPhone上存在问题。我正在使用真实设备进行测试。安装应用程序后,我可以使用电话号码多次登录。但是一段时间后,我无法使用相同的手机号码登录,它要求我正确检查该号码。SIM卡与我正在测试的同一部手机上。调试时,手机登录在模拟器或真实设备中不起作用,因此我无法解决此问题。以前有人经历过这种奇怪的行为吗?我正在使用颤振 1.12.13+hotfix.9 和 firebase_auth 0.15.3+1 版本。任何帮助将不胜感激。谢谢。

_verifyPhoneNumber(BuildContext context) async {
final FirebaseAuth _auth = FirebaseAuth.instance;
await _auth.verifyPhoneNumber(
phoneNumber: phoneNumber,
timeout: Duration(seconds: 0),
verificationCompleted: (authCredential) =>
_verificationComplete(authCredential, context),
verificationFailed: (authException) =>
_verificationFailed(authException, context),
codeAutoRetrievalTimeout: (verificationId) =>
_codeAutoRetrievalTimeout(verificationId),
// called when the SMS code is sent
codeSent: (verificationId, [code]) =>
_smsCodeSent(verificationId, [code])); }

_verificationComplete(AuthCredential authCredential, BuildContext context) {
FirebaseAuth.instance.signInWithCredential(authCredential);
if (!smsCodeSent) handleLogin(authCredential);}

_verificationFailed(AuthException authException, BuildContext context) {
showDialog(
context: context,
builder: (_) => AnimatedDialog(), // SHows diaglog box with check your number error message);}

_smsCodeSent(String verificationId, List<int> code) {
smsCodeSent = true;
_smsVerificationCode = verificationId;
smsOTPDialog(context)  }

_codeAutoRetrievalTimeout(String verificationId) {
// set the verification code so that we can use it to log the user in
_smsVerificationCode = verificationId;}
smsOTPDialog(BuildContext context) {
Navigator.of(context).push(
_createRoute(userPhoneNumber, _smsVerificationCode, _fullname.text));}

您应该在电话身份验证签名方法中设置号码作为测试电话号码。Firebase 身份验证在检测到您的电话号码重复呼叫服务时,会阻止您的电话号码使用服务。他们标记它,然后阻止它近 4 小时。电话身份验证的速率限制为每个电话号码每小时约 5 次呼叫。

尝试检查一下。

最新更新