Flutter应用Google及Firebase登录功能在生产环境无法正常工作
问题根因
本地编译、模拟器运行、直装APK正常,但Google Play商店版本登录无响应,核心原因是Google Play应用签名机制导致签名指纹不匹配:
如果你开启了Google Play的默认应用签名服务,Google会用官方生成的签名证书对你的应用安装包进行重签,你当前Firebase控制台仅配置了本地打包用的签名文件的SHA1指纹,没有添加Google Play重签后的SHA1指纹,Firebase Auth校验Google登录凭证时会直接失败,同时你代码中的try catch捕获了所有异常且未做错误输出,因此看起来没有任何报错、点击账号后无后续响应。
修复步骤
- 第一步:获取Google Play重签后的SHA1指纹
登录Google Play Console,进入对应应用的管理页,依次打开左侧菜单「设置」→「应用完整性」,在「应用签名密钥证书」区域复制SHA1值 - 第二步:在Firebase控制台新增签名指纹
进入Firebase控制台对应的项目页,打开「项目设置」,在「你的应用」板块找到对应Android应用,将刚复制的SHA1值添加到「SHA证书指纹」列表中 - 第三步:更新配置重新打包
重新下载Firebase项目的Android配置文件google-services.json,替换项目android/app目录下的旧配置文件,重新编译打包发布即可。
代码优化建议
你当前的异常捕获逻辑直接吞掉了所有错误,不利于后续问题排查,可以在调试阶段增加错误日志输出,示例如下:
catch (error) { debugPrint("Google登录异常:$error"); return null; }
内容的提问来源于stack exchange,提问作者Dani
相关产品推荐
相关产品推荐

