如何重新生成google-services.json并撤销旧文件且不影响生产环境
解决Firebase配置文件泄露的实操方案
紧急止损:先锁死旧配置的权限
- 登录Firebase控制台,找到你的旧Android应用(包名
com.bar.foo) - 进入项目设置→服务账户,找到对应API密钥,跳转到Google Cloud控制台给这个密钥加严格限制:
- 仅允许绑定你生产应用的签名SHA-1/SHA-256(别用debug签名)
- 包名严格限定为
com.bar.foo - 只开启你应用实际用到的Firebase服务API(比如FCM、Firestore),多余的全关掉
- 这么操作后,就算有人拿到旧的
google-services.json,没有匹配的签名和包名也调用不了你的服务
生成新配置:不用建新应用,直接替换
- 无需创建新的Firebase应用,在原有应用下就能生成新配置:
- 回到Firebase控制台项目设置→应用,找到你的Android应用
- 点击下载google-services.json,这会生成带最新权限限制的配置文件;如果要更换API密钥,去Google Cloud控制台新建一个,配置好相同的包名和签名限制,替换Firebase里的旧密钥后再下载
- iOS端同步更新
GoogleService-Info.plist即可
发布新版本,引导用户更新
- 把新配置文件替换到Flutter项目的
android/app目录 - 检查代码确保没有硬编码旧配置内容,打包发布新版本
- 通过FCM推送、应用内弹窗等方式提醒用户尽快更新,覆盖旧配置的使用群体
彻底废弃旧配置(等用户覆盖率达标后操作)
- 当后台统计到80%以上用户已更新到新版本,去Google Cloud控制台禁用旧API密钥
- 确认旧密钥没有请求流量后,直接删除旧密钥,彻底废掉泄露的配置
防复发措施
- 立刻把敏感配置文件添加到
.gitignore,避免再次提交:# Firebase敏感文件 android/app/google-services.json ios/Runner/GoogleService-Info.plist - 清理Git历史里的泄露文件:用
git filter-repo工具移除历史提交中的配置文件,操作前务必备份仓库
内容的提问来源于stack exchange,提问作者Lynob
相关产品推荐
相关产品推荐

