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

Firebase短信验证在AAB/APK包中失效问题求助

Firebase手机号验证发布包发送失败排查方案

核心排查点

1. Google Play签名指纹未同步到Firebase

Google Play发布的应用会用官方应用签名证书替换本地签名,Firebase不认新签名就会鉴权失败:

  • 打开Google Play控制台→目标应用→应用签名,复制「应用签名证书」的SHA-1和SHA-256。
  • 进入Firebase控制台→项目设置→对应Android应用→添加指纹,粘贴刚才的指纹并保存,等待10分钟后重试。

2. 发布包误用Debug环境配置文件

别拿debug版的google-services.json打包release包:

  • 确保android/app目录下的google-services.json是Firebase控制台下载的最新正式版,而非debug环境配置。
  • 检查android/app/build.gradle末尾是否添加了apply plugin: 'com.google.gms.google-services',没有这句话配置文件不会被嵌入包内。

3. ProGuard/R8混淆破坏Firebase核心代码

release模式下的混淆规则会误删Firebase关键类,导致短信服务调用失败:

  • 在android/app/proguard-rules.pro中添加以下规则,避免Firebase类被混淆:
    -keep class com.google.firebase.** { *; }
    -keep class com.google.android.gms.** { *; }
    
  • 同时确认AndroidManifest.xml中已添加SEND_SMS、RECEIVE_SMS权限,release模式不会自动继承debug的权限配置。

4. Identity Toolkit API配额或调用限制

  • 进入Google Cloud Console→API和服务→Identity Toolkit API→配额页面,检查是否短信发送额度耗尽,或目标国家/地区被限制。
  • 查看API密钥限制:Cloud Console→凭据→找到Firebase使用的API密钥,若设置了包名/签名指纹限制,必须添加发布包的包名和Google Play签名指纹。

5. 抓取具体错误日志定位问题

别盲目排查,直接通过错误码精准定位:

  • 在测试设备上用adb logcat | grep FirebaseAuth命令抓取日志,找到FirebaseAuthException的具体错误码,比如INVALID_APP_CREDENTIAL对应签名问题,QUOTA_EXCEEDED对应额度不足。

快速验证步骤

  1. 本地生成release APK(不上传Google Play),安装到测试机测试:若失败,说明是本地release打包配置问题;若正常,100%是Google Play签名未同步到Firebase。
  2. 重新下载Firebase的google-services.json替换到项目中,重新打包后测试,确保配置与Firebase签名指纹完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:01:36