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

如何重新生成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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:15:15