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

如何在Google Cloud控制台限制Firebase API密钥及更新关联配置

核心机制说明

Firebase 控制台自动生成的客户端配置文件(Android 端google-services.json、iOS 端GoogleService-Info.plist),默认绑定的是项目初始化时平台自动创建的无限制默认API密钥。你在Google Cloud Console手动新建的分端受限密钥,不会自动同步关联到Firebase的应用配置条目,因此无论重新下载配置文件、还是新增同包名应用条目,配置里默认带出的都是旧密钥,这是产品默认逻辑,不属于操作故障。

可落地解决方法

方案1:本地覆盖配置(最快生效,无需控制台修改)

这是生产环境最常用的处理方式,不需要调整Firebase控制台任何设置,直接在项目侧替换密钥值即可:

  • Android端操作:
    1. 打开本地项目中的google-services.json文件,定位到client数组下对应你应用包名的配置块
    2. 将该配置块下api_key字段中current_key对应的旧值,替换为你提前创建好的、已配置包名+SHA1签名限制的Android专属新密钥
    3. 其余字段保持不变,替换完成后重新编译应用即可生效。后续如果重新从Firebase下载配置文件,记得重复执行该替换操作
  • iOS端操作:
    1. 打开本地项目中的GoogleService-Info.plist文件,找到API_KEY对应的条目
    2. 将条目值替换为你提前创建好的、已配置Bundle ID限制的iOS专属新密钥
    3. 重新打包应用即可生效

注意:替换前必须确认新密钥已勾选所有你业务用到的Google服务访问权限,包括Firebase核心服务、Firebase Auth、Cloud Messaging、Firestore、Google Maps SDK等,否则会出现API调用鉴权失败。

方案2:直接给默认旧密钥加限制(零代码修改,一劳永逸)

如果你不想维护本地配置替换逻辑,完全不需要新建密钥,直接给Firebase绑定的旧默认密钥配置访问限制即可:

  1. 打开Google Cloud控制台,进入「API和服务-凭据」页面,找到配置文件里对应的旧默认密钥
  2. 编辑该密钥的应用限制,同时添加Android端的包名+所有版本(debug、release、各渠道包)的SHA1签名指纹,以及iOS端的所有关联Bundle ID
  3. 编辑该密钥的API限制,勾选所有业务用到的Google服务,保存后等待1-2分钟生效即可
  4. 生效后原有配置文件不需要做任何修改,所有端的调用会自动走受限的旧密钥,后续从Firebase下载的配置文件也不需要调整

方案3:修改Firebase客户端绑定密钥(后续下载配置自动带新密钥)

如果你希望后续从Firebase下载的配置文件直接写入你新建的分端新密钥,可以按以下步骤操作:

  1. 打开Google Cloud控制台的「API和服务-凭据」页面,确认你新建的Android、iOS端受限密钥权限配置正确
  2. 进入Firebase控制台项目设置页,找到对应Android、iOS应用的配置条目,删除原有应用条目
  3. 重新添加Android、iOS应用,填写包名/Bundle ID、签名指纹信息,走完应用注册流程
  4. 此时重新下载配置文件,会自动关联到你创建的受限密钥——注意这个操作不会影响你线上已有版本的运行,只是更新控制台的配置关联关系
验证与注意事项
  • 替换密钥后不要立刻删除旧密钥,先上线灰度版本,观察Cloud控制台的API监控面板,确认新密钥调用量符合预期、旧密钥无业务流量后,再禁用或删除旧密钥
  • Android端务必把所有签名环境的SHA1指纹都加入密钥限制,包括debug签名、release签名、应用市场渠道包签名、App Bundle重签名后的指纹,否则对应环境的服务调用会失败
  • iOS端如果有通知扩展、分享扩展等组件也用到Google服务,需要把对应扩展的Bundle ID也加入iOS密钥的限制列表

内容的提问来源于stack exchange,提问作者f_t

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:45:38