我一直在尝试使用 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。您只需在云平台启用Device Check API即可。
我认为经过一些更新后,他们做出了这样的更改:对于安全网络,您需要 SH1 身份验证以及启用设备检查 API。
您可以按照此处所述的步骤进行操作。
启用设备检查 API 后。重新启动您的应用程序。它应该像魅力一样发挥作用。
请告诉我您是否需要采取进一步措施。
SafetyNet是新开发的Android功能。但在没有对应用程序进行任何更改的情况下解决了问题。
以下步骤帮助我解决了。
发布版本
调试版
cd 安卓
gradlew 签名报告
在 Mac 上:
./gradlew 签名报告
我通过从 firebase 中删除旧的 android studio sha-1 和 sha-256 密钥并从最新的 android studio 添加一个新密钥解决了我的问题。
我已经修复了这个错误。 就我而言,我在单个 firebase 项目中添加了两个具有相同 SHA-1 的 Android 项目。 有一次我从 firebase 项目中删除了一个项目。 现在它对我有用。
我经过多次搜索后发现了这个,应该对你或任何在这里绊倒的人有用:
将此行放入依赖项下的 app/build.gradle 中
实现“androidx.browser:浏览器:1.2.0”
这是因为它做了reCAPTCHA验证并打开了浏览器。
Firebase 身份验证有两种方法可以实现此目的:
SafetyNet:如果用户的设备安装了 Google Play 服务, Firebase 身份验证可以验证设备是否合法 Android SafetyNet,电话号码登录即可进行。
或
reCAPTCHA验证:在SafetyNet无法使用的情况下,例如当用户没有Google Play服务时 支持,或者在模拟器上测试您的应用程序时。
所以你的解决方案是两个之一
在真实设备上重新测试
向您的应用添加 reCAPTCHA 验证功能,以便您可以 继续使用您的模拟器。
这对我有用:- 如果您的应用程序已在 Play 商店上发布,请从 Google Play 控制台复制应用程序签名密钥证书(发布 > 设置 > 应用程序完整性页面)。将您的签名密钥插入 Firebase 控制台(项目设置页面)。
点击此链接 - https://developers.google.com/android/guides/client-auth
我从电话号码中删除了我的电话号码,以便在 firebase 上进行测试,并且在真实设备而不是模拟器上工作时,它对我有用。
实际上,我的两个应用程序具有相同的 OAuth2 客户端 ID,这导致 Google Firebase 身份验证发送 SMS OTP 时出现问题。 我如何解决这个问题提到:
您可以在这里找到官方帮助。
如果您对此主题有任何疑问,请随时联系。 谢谢
我将 android studio 的调试密钥库的调试 SHA-1 和 SHA-256 添加到了 firebase 项目(常规设置),如下所述:https://developer.android.com/studio/publish/app-signing #调试模式。
对于 Android,Firebase 要求您将应用的 SHA-1 和 SHA-256 密钥添加到 Firebase 控制台。您可以通过在项目目录中运行以下命令来获取这些密钥:
1> cd 安卓 2> ./gradlew 签名报告