首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firebase电话身份验证:某些用户未收到动态口令

Firebase电话身份验证:某些用户未收到动态口令
EN

Stack Overflow用户
提问于 2021-02-13 23:41:16
回答 3查看 624关注 0票数 2

我正面临着一个奇怪的问题,一些电话号码在没有接收到任何错误的情况下无法接收OTP,只是什么都没有发生。除了极少数用户之外,几乎所有的用户都能很好地接收OTP。我如何调试这个问题?Firebase Auth是否有一些包含错误的日志?我的代码是否遗漏了什么?

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

代码语言:javascript
运行
复制
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) {},
    );
  }
EN

Stack Overflow用户

回答已采纳

发布于 2021-04-26 16:57:54

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

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

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66186903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档