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

Firebase短信自动填充上架Google Play后失效,求解决方案

解决Firebase OTP自动填充在Google Play发布后失效的问题

核心原因

Google Play App Signing会替换你上传的签名密钥,导致Firebase生成的哈希码与Play商店分发的应用签名哈希不匹配,因此短信中的哈希被替换为应用名称,自动填充无法识别。

可行解决方案

1. 添加Play商店签名的哈希码到Firebase

  • 登录Google Play控制台,进入目标应用 > 应用签名页面,找到应用签名证书下的SHA-256指纹。
  • 计算该SHA-256对应的OTP哈希码:执行以下命令行(注意去掉SHA-256指纹中的冒号)
    echo -n "SHA-256指纹字符串" | xxd -r -p | base64 | cut -c1-11
    
  • 登录Firebase控制台,进入目标应用 > Authentication > Sign-in method > Phone > Android应用,添加计算得到的哈希码。
  • 重新发布应用后,Firebase会同时适配测试签名和Play签名的哈希码,自动填充功能即可恢复。

2. 手动解析短信(替代方案)

若哈希码配置暂时无法生效,可绕过自动填充的哈希校验,自行处理短信内容:

  • 注册BroadcastReceiver监听短信接收广播,获取短信内容。
  • 用正则表达式提取OTP验证码(例如匹配6位数字:\d{6})。
  • 将提取到的验证码手动填入输入框。
  • 注意:需申请READ_SMS权限,Android 10+以上版本需引导用户设置默认短信应用,或结合SMS Retriever API(仍需哈希,但可搭配自定义广播逻辑)。

3. 确认Firebase与Google Play的关联状态

  • 进入Firebase控制台项目设置 > 应用,检查应用是否已正确关联Google Play(在应用信息中可查看包名关联状态)。
  • 开启App Check功能,确保应用签名验证正常,避免因签名不匹配导致的服务异常。

注意事项

  • 测试环境使用本地签名哈希码,发布后必须添加Play签名哈希码,两者都需在Firebase中配置,才能覆盖测试与生产场景的自动填充需求。
  • 不要修改Firebase短信模板的哈希占位符,系统会自动替换为对应哈希或应用名称,但只有匹配的哈希才能触发自动填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:25:17