如何创建仅可向开发版App发送FCM推送的专用服务账号?
实现FCM开发环境推送权限隔离的配置方案
1. 关联Firebase项目到Google Cloud控制台
Firebase的权限体系基于Google Cloud IAM,需在GCP控制台完成细粒度权限配置:
- 打开Firebase控制台,进入目标项目 → 点击左上角项目设置 → 选择「Google Cloud Platform (GCP) 资源」,跳转至对应GCP项目。
- 在GCP控制台左侧菜单,进入「IAM与管理员」→「IAM」页面。
2. 创建开发专用Service Account
- 点击页面顶部「添加」按钮,进入成员添加界面。
- 在「新成员」输入框选择「创建新服务账号」,填写账号名称(如
fcm-dev-sender)和描述(如「仅用于.dev后缀开发版应用的FCM推送」),完成账号创建。
3. 配置细粒度推送权限(仅针对开发版应用)
核心是限制权限范围到开发版应用,避免全局访问:
- 返回IAM页面,找到刚创建的服务账号,点击右侧「编辑权限」图标。
- 点击「添加另一个角色」,搜索并选择「Firebase Cloud Messaging Sender」角色(该角色仅具备FCM消息发送权限,无管理权限)。
- 点击角色右侧的「资源」下拉框,选择「特定资源」→ 资源类型选「Firebase App」,在列表中选中带
.dev后缀的开发版应用(如com.example.myapp.dev),确认选择。 - 保存权限配置。
4. 生成开发专用密钥文件
- 进入GCP控制台「IAM与管理员」→「服务账号」页面,找到目标账号,切换到「密钥」标签页。
- 点击「添加密钥」→「创建新密钥」,选择JSON格式,下载生成的密钥文件后分发给开发团队。
5. 验证权限隔离效果
- 用开发密钥尝试向生产版应用ID发送推送:会收到HTTP 403权限拒绝错误,说明无法访问生产资源。
- 用开发密钥向开发版应用ID发送推送:可正常发送消息,验证权限配置生效。
注意事项
- 生产环境的Service Account需单独配置,仅授予生产应用的推送权限,避免权限混用。
- 定期轮换密钥文件,降低密钥泄露风险。
内容的提问来源于stack exchange,提问作者Moshe Katz
相关产品推荐
相关产品推荐

