You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生成签名APK后React Native Firebase手机认证无法正常工作

解决React Native Firebase手机认证Release包报错问题

嘿,这问题我熟!你碰到的是React Native + Firebase认证里最常见的坑之一——Debug和Release包用的是不同的签名密钥,而你只在Firebase控制台配置了Debug版本的SHA-1指纹,所以Release包直接被Firebase拒了。

先给你理清楚逻辑:当你用react-native run-android运行时,Android用的是SDK自带的debug keystore,你当初配置Firebase的时候肯定已经把这个debug密钥的SHA-1加到控制台里了,所以认证能正常工作。但你用cd android && ./gradlew assembleRelease打包时,用的是你自己的Release签名密钥(哪怕是默认生成的,也和Debug的不是同一个),Firebase没见过这个密钥的指纹,就直接抛出那个授权错误了。

解决步骤一步一步来:

  1. 获取Release包的SHA-1指纹

    • 如果你已经有自定义的Release签名密钥(比如my-release-key.keystore),打开终端执行这个命令(记得替换成你的密钥路径和别名):
      keytool -list -v -keystore /path/to/your/my-release-key.keystore -alias your-key-alias
      
      输入密钥密码后,就能看到SHA-1的字符串了。
    • 要是你用Android Studio生成签名APK,在Build > Generate Signed Bundle/APK的流程里,选中你的密钥存储后,点击「Show SHA-1」就能直接复制指纹。
  2. 在Firebase控制台添加Release指纹

    • 打开你的Firebase项目,点击右上角的齿轮图标进入「项目设置」。
    • 在「你的应用」板块找到对应的Android应用,点击「添加指纹」。
    • 把刚才拿到的Release SHA-1粘贴进去,保存更改。
  3. 更新配置并重新打包

    • 从Firebase控制台重新下载最新的google-services.json文件,替换掉你React Native项目里android/app目录下的旧文件。
    • 打包前先清理缓存,避免旧配置残留:
      cd android && ./gradlew clean
      
    • 最后重新打包Release APK:
      ./gradlew assembleRelease
      

额外注意点:

  • 确认你的Release包的包名和Firebase控制台里配置的完全一致,大小写、拼写都不能错!
  • 哪怕你用的是Android默认生成的Release签名(没自定义密钥),它的SHA-1也和Debug的不一样,必须加到Firebase里。

对了,看了你的认证代码,逻辑完全没问题——问题就出在签名配置上,和代码无关。按照上面的步骤来,应该就能解决啦!

内容的提问来源于stack exchange,提问作者Manspof

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:44:52