gpt4 book ai didi

Firebase 电话验证 : some users don't receive OTP

转载 作者:行者123 更新时间:2023-12-05 06:04:52 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,有些电话号码没有收到 OTP 而没有收到任何错误,只是没有任何反应。除了极少数用户外,几乎所有用户都可以正常接收 OTP。我该如何调试这个问题? Firebase Auth 是否有一些错误的日志?我的代码是否遗漏了什么?

这是发送 OTP 的代码(在 Flutter 中)

sendOtp(String number, BuildContext context) async {
print("Sending OTp");
state = ViewState.Busy;
await auth.verifyPhoneNumber(
phoneNumber: '+966$number',
timeout: Duration(seconds: 30),
verificationCompleted: (AuthCredential credential) {
print("Verified");
signInWCredential(credential, context, number);
},
verificationFailed: (FirebaseAuthException e) {
print("verification error code is: ${e.code}");
print("verification error message is: ${e.message}");
if (e.code == "too-many-requests") {
Dialogs.dialog(
context,
"${Localization.of(context).error}!",
Localization.of(context).tooManyOtpRequestsError,
Localization.of(context).ok,
isDoublePop: true)
.then((value) {
if (value == ConfirmAction.ACCEPT) {
Navigator.of(context).pop();
}
});
} else {
FirebaseCrashlytics.instance.recordError(e, StackTrace.current);
print("Error is: $e");
Dialogs.dialog(
context,
"${Localization.of(context).error}!",
Localization.of(context).errorSendingOtp,
Localization.of(context).ok,
isDoublePop: true);
}
},
codeSent: (String verificationId, [int resendToken]) {
print("Code sent");
print("verification ID is: $verificationId");
setVerificationId(verificationId);
print("Resend token is: $resendToken");
state = ViewState.Idle;
},
codeAutoRetrievalTimeout: (String verificationId) {},
);
}

最佳答案

我已联系 GCP 支持部门调查此问题。他们向我报告说,我客户所在地区的短信发送成功率有85%-90%。他们正在与 SMS 提供商合作解决该问题。

我提出了一个新功能请求,要求在 SMS 发送失败时返回一条错误消息。同时,我通过创建自己的自定义身份验证 API 并通过其他服务提供商发送 SMS 解决了这个问题。

关于Firebase 电话验证 : some users don't receive OTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66186903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com