Flutter应用上传Google Play后Firebase OTP收不到问题排查咨询
Firebase OTP 在 Google Play 内部测试渠道失效排查
首先明确你问的生效延迟问题:Play签名配置同步、Firebase端密钥关联的生效延迟普遍在15分钟到2小时区间,极端情况最长不超过24小时,但90%以上的这类故障都不是延迟导致的,而是配置环节有错位,按以下顺序排查即可定位问题。
最高发的配置错位问题
- 核对你添加到Firebase的SHA-1、SHA-256来源:必须是Google Play控制台「应用完整性」页面下Play托管的应用签名密钥的指纹,不是你自己打包用的上传密钥的指纹。Play会对最终分发给用户的AAB/APK重新签名,如果你只添加了上传密钥的指纹,Firebase根本无法识别Play分发版本的应用身份,会直接拦截OTP请求。
- 逐字符比对两个渠道的SHA值:很多人复制指纹的时候会带空格、漏字符,只要和Play端的值有一个字符不匹配,整个API key的关联就会失效。
- 确认你把正确的SHA添加到Firebase之后,有没有重新下载最新的
google-services.json打进安装包:旧的配置文件里不会关联新添加SHA对应的API权限,就算后台配置对了,客户端拿旧文件还是会发起无效请求。
容易遗漏的Phone Auth专属配置
- 打开Firebase控制台的Phone Auth设置页,确认已开启Google Play Integrity 设备校验选项:当应用通过Play商店分发时,Firebase会默认要求通过Play Integrity做风险请求校验,如果没完成这个配置,所有Play渠道发起的OTP请求都会被判定为高风险,不会实际下发短信。
- 检查你的应用包名有没有正确关联到Play Integrity的配置:如果包名和签名SHA没有匹配对应关系,校验流程会直接失败。
排除测试环境的干扰
- 测试前必须把设备上之前安装的同包名应用完全卸载,不要用自己打的release包、debug包直接覆盖安装Play渠道的测试包:残留的签名信息、缓存会导致系统校验混乱,就算配置是对的也会触发OTP发送失败。
- 确认测试设备的Google Play服务版本更新到最新:过低的Play服务版本会导致Play Integrity校验流程走不通,连带影响OTP下发。
生效延迟的判断标准
如果你已经核对完以上所有配置都是正确的,只需要等最多2小时再做卸载重装测试即可。超过24小时仍未恢复的,100%是配置环节有错位,不存在“延迟很久还没生效”的情况。
内容的提问来源于stack exchange,提问作者Advaith Bhanu
相关产品推荐
相关产品推荐

