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

生产环境下Firebase Phone Authentication(AuthUI)报错求助

针对Firebase Phone AuthUI生产环境报错的排查方案

这种只在生产环境出现的Auth问题真的很闹心——调试时一切顺畅,上线后用户反馈才暴露出问题,我之前也踩过类似的坑,给你梳理几个最核心的排查方向:

1. Play应用签名导致的SHA指纹不匹配(最常见原因)

当你把APK上传到Play商店并开启了Play App Signing时,Google会替换你本地的签名证书,这时候Firebase控制台里配置的还是你本地调试用的SHA-1/SHA-256指纹,生产环境的请求自然会被拦截。

  • 解决步骤:
    • 打开Play控制台 → 你的应用 → 应用签名 → 复制「应用签名证书」栏的SHA-1和SHA-256值
    • 跳转Firebase控制台 → 项目设置 → 对应应用 → 添加这两个指纹,保存后等待5-10分钟让配置生效

2. 生产环境的混淆规则或配置遗漏

调试打包时可能没开启混淆,但生产打包后,Firebase AuthUI的核心类被混淆,导致功能异常;或者google-services.json不是最新版本。

  • 检查proguard-rules.pro,添加AuthUI的混淆豁免:
    -keep class com.firebase.ui.auth.** { *; }
    -keep class androidx.lifecycle.** { *; }
    
  • 重新从Firebase控制台下载最新的google-services.json,替换生产环境的配置文件

3. App Check的生产验证未配置

如果你的项目开启了Firebase App Check,调试时用的是调试令牌,但生产环境需要配置正式的验证方式,否则Auth请求会被拒绝。

  • 进入Firebase控制台 → App Check → 对应应用 → 生产环境验证方式,配置Play Integrity(官方推荐),并关联你的Play应用

4. Phone Auth的配额或区域限制

调试时请求量小不会触发限制,但生产环境用户量上来后,可能触发了Firebase的配额上限,或者用户所在区域不在允许列表内。

  • 打开Firebase控制台 → 身份验证 → 使用情况,查看配额是否足够,有没有异常拦截记录
  • 检查身份验证设置里的「允许的国家/地区」,确保用户所在区域在列表中

先从Play签名的SHA指纹开始排查吧,我之前就是因为这个踩了大坑,补完指纹后问题立刻就解决了。如果还是不行,可以尝试用生产签名打包一个APK本地测试,模拟生产环境的签名状态,这样更容易定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:14:56