使用 Firebase 电话身份验证注册/登录时,身份验证流程始终会启动 reCAPTCHA 流程,并在返回应用程序后发出missing client identifier
error.
我的设置之前适用于设备验证/安全网络 API。
除了我的 pubspec 中的 firebase 依赖项更新之外,该问题的出现没有任何我所知道的实际更改。
我现在用
firebase_core: ^2.10.0
firebase_auth: ^4.4.2
将依赖关系降级为
firebase_core: 2.8.0
firebase_auth: 4.2.10
但没有帮助。
到目前为止我还检查了什么:
- 我(再次)遵循了所有步骤https://firebase.google.com/docs/auth/flutter/phone-auth https://firebase.google.com/docs/auth/flutter/phone-auth
- 我确保在 Play Store Integrity API 页面上链接正确的 Google Cloud 项目
- 我用的是右边
SHA-1
我的应用程序的 Firebase 控制台中的“Play 商店签名”页面(用于应用程序包构建)中的密钥
- 我确定了正确的
SHA-256 certificate fingerprint
从“Play 商店签名”页面在 Firebase 控制台中注册
- 我在 Firebase 控制台的“AppCheck”菜单下注册了正确的应用程序(但可能不相关)
- 我检查了 Integrity API 管理页面上的“凭据”并确保所有内容均已设置
- 我尝试在 Android gradle 文件中硬编码最新的 firebase BOM,但没有帮助
- 我硬编码版本
21.1.0
Android Firebase Auth 库位于 Android gradle 文件中,但没有帮助
- 我确保我的 Android Api 密钥不限于任何用于测试的 api
- 我确保设备上安装了 Chrome
- 我降级了
androidx.browser:browser
Android gradle 文件中的依赖项1.3.0
但这没有帮助
- 我查了一下
google-services.json
已是最新
我是否忘记了什么,或者是否有人遇到过类似问题并在切换到 Integrity API 后解决了该问题?
或者换句话说:如果完全相同的设置适用于已激活的设备验证 API,但没有它则不会出现什么问题?
问题已经解决了。
原因是Android应用程序密钥位于https://console.cloud.google.com/apis/credentials https://console.cloud.google.com/apis/credentials仅限于 Android 应用程序:
这导致了 reCAPTCHA 流程中的错误,因为它可能也需要浏览器中的密钥。需要设置为None
.
另一件事 - 为什么它首先进入并且仍然进入 reCAPTCHA 流程是 Firebase 端存在一个开放事件:https://status.firebase.google.com/incidents/UY1LTFan8X5oybhphzfV https://status.firebase.google.com/incidents/UY1LTFan8X5oybhphzfV
目前,Integrity API 未按预期工作,这也是代码与 Safety Net API 配合使用的原因 - 至少只要它不必进入后备/reCAPTCHA 流程即可。
UPDATE:截至 2023 年 5 月 1 日,此问题现已完全解决,Play Integrity API 以及电话身份验证现在可以按预期工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)