我们正在从 Firebase Web SDK 迁移到响应本机 Firebase。电话身份验证与 Web SDK 配合良好,但是在迁移到 React 原生 Firebase 后,我们面临着这个令人沮丧的问题。
这是错误消息:
错误:[auth/missing-client-identifier] 此请求缺少有效的应用程序标识符,这意味着 Play 完整性检查和 reCAPTCHA 检查不成功。请重试,或检查 logcat 了解更多详细信息
错误点:
auth().signInWithPhoneNumber(num).then((item) => {
setConfirmation(item);
});
我们正在使用 expo(裸工作流程),在开发版本以及预览 APK 中进行调试时会出现此问题。我们已经有一个与我们的 firebase 项目关联的 SHA256,相同的密钥也上传到 EAS(Expo 应用程序服务)。我们之前在电话登录方面没有遇到任何问题。
这是 logcat 的错误
无法初始化 reCAPTCHA 配置:没有为租户/项目配置 Recaptcha Enterprise siteKey *
[SmsRetrieverHelper] 短信验证码请求失败:未知状态码:18002 无效的 PlayIntegrity 令牌;应用程序无法被 Play 商店识别。 (对,它是一个开发版本)
[GetAuthDomainTask] 获取项目配置时出错。失败并显示 INVALID_CERT_HASH 400 无法获取 reCAPTCHA 令牌并出现错误 [尝试获取包证书哈希时发生错误。]- 在没有应用程序验证的情况下调用后端
[SmsRetrieverHelper]短信验证码请求失败:未知状态码:17010 null
它似乎与 SHA 密钥有关,但不确定或不明白到底是如何的。 请指教。
附注:链接获取环境详细信息、gradle 和 android 文件
您的 SHA-1 和 SHA-256 指纹可能已被更改, 打开 Google Play Console,然后选择您想要的应用程序,然后您可以在“发布”>“设置”>“应用程序完整性”下找到“Play 应用程序签名”页面,然后在“项目设置”下将新指纹添加到您的 firebase。
我只添加了 SHA-256,它与其他库一起工作得很好,认为一个指纹就足够了,但是在添加 SHA-1 后,它开始按预期工作。
他们应该在文档中详细提到这一点。