您有像我一样的问题吗?我有一个使用 Firebse 进行电话身份验证的应用程序。起初,我在开发中使用模拟器进行测试,它工作正常,但在我构建 apk 在手机上进行测试后,我总是收到“由于异常活动,我们已阻止来自此设备的所有请求。稍后再试。”无论我更改为其他号码,甚至更改为其他设备,它都会显示相同的错误消息。
Future<void> phoneAuthentication (String phoneNumber) async {
verificationCompleted(PhoneAuthCredential credential) async {
await _auth.signInWithCredential(credential);
print("TEST_LOG============verificationCompleted=========>");
showSnackBar("Authentication Successful");
}
verificationFailed(FirebaseAuthException e) {
print("TEST_LOG========failure=============>${e.message}");
showSnackBar("Authentication Failed: ${e.message}");
}
codeSent(String verificationId, int? resendToken) {
print("TEST_LOG===========Code shared==========>${verificationId}");
Navigator.push(
context,
MaterialPageRoute(builder: (context) => MyVerify(
verificationId: verificationId,
login: _loginController.text,
email: _emailController.text,
password: _passwordController.text,
phoneNumber: _phoneNumberController.text,
)
),
);
}
codeAutoRetrievalTimeout(String verificationId) {
print('TEST_LOG===========Time out==========>${verificationId}');
}
showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return Center(
child: CircularProgressIndicator(), // Display CircularProgressIndicator
);
},
);
showSnackBar('Verifying...');
await FirebaseAuth.instance.verifyPhoneNumber(
phoneNumber: phoneNumber,
timeout: const Duration(seconds: 60),
verificationCompleted: verificationCompleted,
verificationFailed: verificationFailed,
codeSent: codeSent,
codeAutoRetrievalTimeout: codeAutoRetrievalTimeout,
);
Navigator.pop(context);
}
每个电话号码每 4 小时最多只能发送 5 条短信。
因此,当您进行测试时,您需要在“用于测试的电话号码”中添加您的电话号码以及您选择的验证码。
您还应该删除该用户。
转到您的 Firebase 控制台 -> 身份验证 -> 用户
找到您正在测试的用户。 删除该用户。