React Native集成Firebase手机号验证遇授权失败问题求助
解决React Native Firebase手机号验证的「App未授权」错误
我之前也碰到过一模一样的问题!这个错误的核心原因就是Firebase控制台里的应用签名信息、包名和你本地React Native项目的配置不匹配,咱们一步步排查解决:
1. 确认SHA-1指纹的正确性
首先要确保你获取的是正确的debug keystore的SHA-1:
- 如果你是用默认路径存储的debug keystore,一定要用对应系统的命令执行:
- Mac/Linux:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android - Windows:
keytool -list -v -keystore C:\Users\<你的用户名>\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android
- Mac/Linux:
- 注意:如果生成keystore时你自定义了存储路径,要替换成你实际的路径,不然获取到的SHA-1根本不是项目在用的那个!
- 复制SHA-1的时候,要保留
AA:BB:CC...的格式,去掉多余空格,逐字符核对避免出错。
2. 核对Firebase控制台的应用配置
打开Firebase控制台,进入你的项目 → 点击顶部「设置」图标 → 「项目设置」:
- 包名检查:找到Android应用条目,确认
包名和你React Native项目中android/app/build.gradle里的applicationId完全一致,大小写、特殊字符都不能错! - SHA-1指纹添加:在「签名证书指纹」区域,检查是否已经添加了你刚才获取的debug SHA-1。如果没有,点击「添加指纹」粘贴进去;如果已经有了,再仔细核对一遍,避免复制时的遗漏或错误。
3. 更新配置文件并清理缓存
- 从Firebase控制台重新下载
google-services.json文件,替换你项目中android/app目录下的旧文件(建议刷新页面后再下载,避免缓存的旧配置) - 清理项目缓存,避免旧配置残留:
cd android # Mac/Linux执行 ./gradlew clean # Windows执行 gradlew clean - 重新运行React Native项目:
npx react-native run-android
4. 额外注意(针对发布版本)
如果你的项目已经发布到Google Play,并且启用了Google Play App Signing,那还要把Google Play控制台里「应用签名」页面的SHA-1指纹也添加到Firebase控制台里——因为发布后Google会替换你的应用签名,这时候本地的debug SHA-1就不生效了。
完成这些步骤后,再测试手机号验证功能,应该就能解决这个「App validation failed」的错误了!
内容的提问来源于stack exchange,提问作者Manspof
相关产品推荐
相关产品推荐

