React Native Firebase电话认证报错:缺失有效应用标识符
React Native Firebase电话认证报错:[auth/missing-client-identifier]
报错信息
控制台警告:可能存在未处理的Promise拒绝(ID:0):Error:
[auth/missing-client-identifier] 此请求缺少有效的应用标识符,意味着Play Integrity校验、SafetyNet校验和reCAPTCHA校验未通过。请重试,或查看logcat获取更多详情。NativeFirebaseError: [auth/missing-client-identifier] 此请求缺少有效的应用标识符,意味着Play Integrity校验、SafetyNet校验和reCAPTCHA校验未通过。请重试,或查看logcat获取更多详情。
复现步骤
- 执行
npx react-native@latest init Example && cd Example - 执行
cd android && ./gradlew signingReport - 下载包含SHA-1和SHA-256的google-services.json到
android/app目录 - 按照Firebase官方Android配置规范添加对应代码
- 执行
npm i @react-native-firebase/app @react-native-firebase/auth - 将Firebase电话认证官方示例代码复制到App.tsx
已尝试的解决措施
- 在
android/app/build.gradle中添加implementation 'com.google.android.play:integrity:1.1.0' - 启用Firebase相关API与服务
- 在Firebase控制台添加应用的SHA-1和SHA-256指纹
- 在Firebase认证设置中允许
{PROJECT_ID}.firebase.app访问
进一步排查解决建议
- 校验SHA指纹一致性
确认./gradlew signingReport输出的debug/release版本SHA-1、SHA-256与Firebase控制台添加的完全匹配,测试阶段务必添加debug指纹。 - 重新获取google-services.json
从Firebase控制台重新下载最新配置文件,检查文件中client[0].oauth_client[0].client_id与控制台OAuth客户端ID一致,且文件正确放置在android/app目录,执行gradle同步确保配置生效。 - 确认Play Integrity API权限
登录Google Cloud控制台,检查Play Integrity API是否启用,同时确保项目服务账号拥有Play Integrity API Reader相关权限。 - 检查reCAPTCHA配置
确认Firebase认证的电话认证模块中reCAPTCHA验证已正确配置,Android应用默认使用隐式reCAPTCHA,需保证应用包名、签名与控制台配置完全匹配。 - 查看Logcat详细日志
运行adb logcat | grep FirebaseAuth或通过Android Studio查看Logcat,定位具体是Play Integrity、SafetyNet还是reCAPTCHA校验失败,针对性修复。 - 验证测试环境
确保测试设备安装了最新版Google Play服务;若使用模拟器,需选择包含Google APIs的系统镜像。
内容的提问来源于stack exchange,提问作者Ds Adithya
相关产品推荐
相关产品推荐

