【问题标题】:Firebase phone authentication is not working on Android real deviceFirebase 手机身份验证不适用于 Android 真实设备
【发布时间】:2021-03-05 04:48:09
【问题描述】:

我一直在尝试使用 Firebase 身份验证来实现电话身份验证。它与安卓模拟器一起工作。我在模拟器中使用了测试号和实数。两者都有效。但只有测试号码在真实设备上工作,并为其他号码抛出此异常

Error is:[firebase_auth/missing-client-identifier] This request is missing a valid app identifier, 
 meaning that neither SafetyNet checks nor reCAPTCHA checks succeeded. 
 Please try again, or check the logcat for more details.

我也在 firebase 中设置了 SHA 密钥。

【问题讨论】:

    标签: firebase flutter firebase-authentication


    【解决方案1】:

    我猜你没有启用设备检查 API。您只需在云平台上启用设备检查 API。

    我认为在进行了一些更新后,他们做出了这样的改变,即对于 Safety Net,您需要 SH1 身份验证以及启用设备检查 API。

    您可以按照提到的步骤here

    启用设备检查 API 后。重新启动您的应用程序。它应该像魅力一样发挥作用。

    如果您需要进一步的步骤,请告诉我。

    【讨论】:

    • 我从谷歌云启用了 Android 设备验证并创建了一个凭证密钥。但是如何将它与我的 firebase 项目联系起来呢?
    • 那么您已经通过此链接启用了设备检查 API? console.cloud.google.com/apis/library/…
    • @AyushSurana 您的 Firebase OTP 自动读取工作正常吗?
    • 大家好,我实施了所有提到的解决方案,但都没有工作,请帮助我摆脱这个问题
    • 在本机反应中出现相同的错误上述方法均无效
    【解决方案2】:

    Android 已添加 SafetyNet,您可以阅读更多 here。但是您要做的是

    1.启用Android设备验证apihere

    2. 如果您尚未指定应用的 SHA-256 指纹,请从 Firebase 控制台的设置页面执行此操作。更多信息请阅读details here.

    【讨论】:

    • 此解决方案适用于我 根据文档,这两个步骤都是必需的 1. 启用 Android 设备验证 2. 将 SHA-256 指纹添加到 firebase 控制台
    • 工作....非常感谢....
    【解决方案3】:

    我通过从 firebase 中删除旧的 android studio sha-1 和 sha-256 键并从最新的 android studio 添加一个新键解决了我的问题。

    【讨论】:

      【解决方案4】:

      我已经修复了这个错误。 就我而言,我在单个 firebase 项目中添加了两个具有相同 SHA-1 的 android 项目。 一旦我从 firebase 项目中删除了一个项目。 现在它对我有用。

      【讨论】:

        【解决方案5】:

        SafetyNet 是新开发的安卓功能。但是在没有对应用程序进行任何更改的情况下解决了这个问题。

        以下步骤帮助我解决了问题。

        发布版本

        1. Google 会在您上传时对 Appbundle 进行签名。因此,查找并复制由谷歌签名的应用程序的 SHA1 密钥。 Google Play Console - App Signing Key

        1. 在 Firebase 控制台中导航到您的项目 -> 项目设置,然后单击 添加指纹 添加 SHA1 密钥。

        调试版本

        1. 使用终端的以下命令导航到项目的 android 目录。

        cd 安卓

        1. 生成应用签名报告并复制 SHA1 密钥

        gradlew 签名报告

        在 Mac 上:

        ./gradlew 签名报告

        1. 在 Firebase 应用中添加 SHA1 密钥。

        【讨论】:

          【解决方案6】:

          我在经过大量搜索后找到了这个,应该为您或在这里遇到的任何其他人工作:

          将此行放在依赖项下的 app/build.gradle 中

          实现“androidx.browser:browser:1.2.0”

          这是因为它做reCAPTCHA验证并打开浏览器。

          【讨论】:

          • 嗯,它对我有用,也许你的代码有其他问题。
          • 如果代码有问题,那么它不应该在调试模式下工作。甚至,OTP 也将用于在实时模式下测试电话号码,但不仅仅适用于那些从未注册过的号码。您能否添加参考 URL,您从哪里发现应该为 Firebase 身份验证添加此依赖项?
          • 对我来说问题是 OTP 屏幕上的 firebase 想要打开浏览器进行 recaptcha 我相信它现在是默认行为。由于缺少浏览器,它无法正常工作,而当我将其放入其中时,它就可以正常工作。因此,由于我不确定您的问题到底是什么,所以我无能为力。
          【解决方案7】:

          Firebase 身份验证可通过两种方式完成此操作:

          SafetyNet:如果用户的设备安装了 Google Play 服务, Firebase 身份验证可以验证设备是否合法 Android SafetyNet,电话号码登录可以继续。

          reCAPTCHA 验证:在无法使用 SafetyNet 的情况下,例如当用户没有 Google Play 服务时 支持,或者在模拟器上测试您的应用时。

          所以你的解决方案是两个之一

          • 在真实设备上重新测试

          • 为您的应用添加 reCAPTCHA 验证功能,以便您可以 继续使用您的模拟器。

          【讨论】:

            【解决方案8】:
            猜你喜欢
            • 1970-01-01
            • 2022-10-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-10-16
            相关资源
            最近更新 更多