繁体   English   中英

Firebase 手机认证在 Android 真实设备上不起作用

[英]Firebase phone authentication is not working on Android real device

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

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 密钥。

我猜你还没有启用设备检查 API。 您需要做的就是在云平台上启用设备检查 API。

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

您可以按照此处提到的步骤操作。

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

让我知道您是否需要进一步的步骤。

Android 已添加SafetyNet,您可以在此处阅读更多信息 但是你需要做的是1.此处启用 Android 设备验证 api。 2.如果您尚未指定应用的 SHA-256 指纹,请从 Firebase 控制台的设置页面执行此操作。 有关更多信息,请阅读此处的详细信息

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

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

经过多次搜索,我发现了这一点,应该为您或其他在这里绊倒的人工作:

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

实现“androidx.browser:browser:1.2.0”

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

我一直在尝试使用Firebase身份验证来实现电话身份验证。 它与android模拟器一起使用。 我在模拟器中使用了测试编号和实数。 两者都可以。 但是只有测试编号可以在真实设备上使用,并且会为其他编号抛出此异常

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 身份验证有两种方式来实现这一点:

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

或者

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

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

  • 在真实设备上重新测试

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

对于safetyNet或reCaptcha问题,请点击此链接。当我被卡住时,它帮助我解决了问题

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

以下步骤帮助我解决了。

发布版本

  1. 当您上传时,Google 会签署 Appbundle。 因此,查找并复制由 google 签名的应用程序的 SHA1 密钥。 Google Play 管理中心 - 应用签名密钥

在此处输入图片说明

  1. 导航到您的项目-> Firebase 控制台中的项目设置,然后通过单击添加指纹来添加 SHA1 密钥。 在此处输入图片说明

调试版

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

光盘安卓

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

毕业签名报告

在 Mac 上:

./gradlew 签名报告

在此处输入图片说明

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

这对我有用:- 如果您的应用程序已在 Play 商店中发布,请从 Google Play 控制台复制应用程序签名密钥证书(发布 > 设置 > 应用程序完整性页面)。 将您的签名密钥插入您的 Firebase 控制台(项目设置页面)。

按照这个链接 - https://developers.google.com/android/guides/client-auth

我从电话号码中删除了我的电话号码,以便在 firebase 上进行测试,并且在使用真实设备而不是模拟器时对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM