Flutter Firebase Phone Auth Android端无法使用求助
Android Firebase Phone Auth 授权问题排查方案
核对签名证书的SHA值是否完全匹配
- 别手动复制SHA值,直接用命令行生成对应证书的哈希:
keytool -list -v -alias 你的密钥别名 -keystore 你的密钥库路径 - 分清debug和release证书的SHA值,debug版用的是Android默认的debug.keystore,release版是你自己的签名证书,这两个的SHA值都得在Firebase控制台里添加。
- 如果用了Build Variants切换构建类型,要确认当前构建类型对应的证书SHA值已经配置好。
- 别手动复制SHA值,直接用命令行生成对应证书的哈希:
检查包名完全一致
- 确保Firebase控制台注册的包名,和AndroidManifest.xml里的
package属性一字不差,包括大小写(Android包名不区分,但Firebase是严格匹配的)。 - 如果用了产品变种(productFlavors),不同变种的包名后缀要在Firebase控制台添加对应应用条目,或者在build.gradle里统一包名。
- 确保Firebase控制台注册的包名,和AndroidManifest.xml里的
重新下载替换google-services.json
- 修改Firebase配置后,一定要重新下载最新的google-services.json,替换到项目app模块的根目录。
- 清理项目缓存再重构:执行Build > Clean Project,然后Build > Rebuild Project,避免旧配置残留。
验证Play Integrity配置
- 确认Play Integrity API已经在Google Cloud Console启用(Firebase的Play Integrity注册要关联正确的Cloud项目)。
- 如果是本地调试出问题,要确保debug版也配置了Play Integrity,或者暂时关闭严格校验(仅限调试,上线必须开启);如果是已上传到Play Console的版本,确认应用和Play Integrity的关联没问题。
检查Firebase Auth的Phone Auth设置
- 进Firebase控制台 > Authentication > Sign-in method,确认Phone选项已经启用,测试阶段可以添加测试号码白名单,避免触发风控限制。
- 确认项目所在地区支持Phone Auth,部分地区可能有服务限制。
调试时的额外操作
- 用Logcat搜
FirebaseAuth相关日志,能看到更具体的错误细节,比如到底是哪个SHA值不匹配。 - 直接跑debug模式的应用,别用签名后的APK,先排除签名配置的问题。
- 用Logcat搜
内容的提问来源于stack exchange,提问作者EBENEZER OCANSEY
相关产品推荐
相关产品推荐

