Firebase Phone Auth 不会用我的代码向我发送短信

Posted

技术标签:

【中文标题】Firebase Phone Auth 不会用我的代码向我发送短信【英文标题】:Firebase Phone Auth won't send me the sms with my code 【发布时间】:2018-03-14 02:58:30 【问题描述】:

我将我的应用从使用 Digits Phone Auth 迁移到了新的 Firebase Phone Auth,但是在我测试我的应用时,我在注销我的用户时遇到了麻烦(已经解决了这个问题),所以我只是将它从“用户列表”中删除控制台,但现在每次我尝试使用该电话号码登录时,它都不会向我发送带有我的代码的短信,它适用于除此之外的任何其他号码。有人知道我该如何解决这个问题吗?

【问题讨论】:

在这里得到我的答案:***.com/a/53513327/1713519 【参考方案1】:

首先检查日志,是否调用了onVerificationCompleted(PhoneAuthCredential cred)。如果被调用,那么可能是这种情况:

编辑:我已经回答了假设 android 环境的问题。这两种情况只与android编程有关。

即时验证:在某些情况下,无需发送或输入验证码即可即时验证电话号码。 自动检索:在某些设备上,Google Play 服务可以自动检测传入的验证短信并执行验证,无需用户操作。 (某些运营商可能无法使用此功能。)。 在上述情况下,验证过程会自动处理,您无需输入代码。

否则可能是这种情况:

为防止滥用,Firebase 对在一段时间内可以发送到单个电话号码的 SMS 消息数量实施了限制。如果超出此限制,电话号码验证请求可能会受到限制。如果您在开发过程中遇到此问题,请使用其他电话号码进行测试,或稍后再尝试请求。

更多信息请参考Authenticate with Firebase on android using a Phone Number。

【讨论】:

我正在为 ios 开发这个应用程序,因此没有即时验证,而且我知道它可以正常工作并发送 SMS,因为它可以使用除我之外的任何其他电话号码。在尝试之前我等了一天,然后再次认为我可能已经达到了每天的最大尝试次数,但这也不起作用。控制台不提供任何日志,所以我完全迷失在这里。也许 Firebase 禁止了我的号码?我在firebase slack和论坛上问过,但似乎没有人回答。顺便说一句,我正在使用 FirebaseUI。 是的,抱歉文档是针对 android 的,但第三种情况对于 ios 和 android 都是一样的。看来你一定超出了限制。如果这是问题所在,文档还说使用不同的电话号码进行测试,或者稍后再试一次请求(但没有说明多久之后)。 可能是我超出了限制,因为现在正在工作,感谢您的帮助! ExampleApp: Your code is 5664 r64Iw/6mD1D 我希望我的代码采用这种格式,可以吗? @VajaniKishan 不确定是否可行,但看起来您正在尝试使用该哈希码在此处实现 OTP 自动填充。我认为,从这个来源geeksforgeeks.org/…,我们在使用 Firebase 电话身份验证时不需要这种格式来实现这一点。也许 Firebase 默认会处理它。【参考方案2】:

我有同样的问题。这是因为在 Firebase 控制台上添加了我的电话号码来测试电话号码。将其从“测试设备”部分中删除。)

【讨论】:

谢谢!浪费时间 @kazimad,我也有类似的问题。我在哪里可以找到控制台上的“测试设备”?? @Shammir 它位于 Firebase 控制台、身份验证、登录方法、电话、用于测试的电话号码(可选)下。希望对您有所帮助。 嘿@kazimad,我只是这样做,但我什么也收不到 - 在测试模式“调试”中,你知道我们编写了一个测试验证代码,它运行良好,但是在我发布我的应用程序之后商店我无法收到任何短信所以我应该做些什么也许我忘记了吗? 我没有把我的号码放在测试设备中。但我放了不同的数字。我仍然没有收到短信。此外,当我从 android 设备尝试时,不会收到短信。但它来自 iPhone。【参考方案3】:

我通过AndroidManifest 文件将我的初始加载活动更改为注销活动。这是最终版本:

<activity android:name=".OtpActivity"></activity>
    <activity android:name=".LoginActivity" />
    <activity android:name=".MainActivity" />
    <activity android:name=".MainPageActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

MainPageActivity 是我的注销活动。

【讨论】:

以上是关于Firebase Phone Auth 不会用我的代码向我发送短信的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Phone Auth

firebase phone auth android崩溃

Firebase Phone Auth 在发布版本中不起作用

React-Native Firebase Phone Auth 冻结 iPhone

Flutter-Firebase phone Auth 总是在 iOS 上返回 Token mismatch

Flutter Web 中的 Firebase Phone 身份验证