调用Firebase Cloud Messaging发推送报权限错误,求解决
解决Firebase Cloud Messaging权限被拒问题
1. 分配正确的权限角色
你添加的两个权限项不匹配所需权限,需要给目标服务账号分配Firebase Cloud Messaging Sender角色:
- 登录Google Cloud Console,进入报错提示里的项目
ZZZ - 打开「IAM与管理员」→「IAM」页面
- 找到你的服务账号,点击右侧的编辑图标
- 点击「添加另一个角色」,搜索并选择「Firebase Cloud Messaging Sender」
- 保存更改
如果需要更精细化的权限控制,也可以直接为服务账号添加cloudmessaging.messages.create这个具体权限(通过自定义权限配置,但推荐使用现成角色更便捷)。
2. 等待权限生效
Google Cloud的权限变更不会即时生效,通常需要等待5-10分钟,之后再重新运行代码测试。
3. 验证核心配置
- 确认你使用的
demo.json证书文件,确实属于项目ZZZ下的目标服务账号,避免混用其他项目的证书文件。 - 检查Google Cloud Console的「API与服务」→「已启用的API」页面,确保Firebase Cloud Messaging API处于启用状态(如果未启用,搜索该API并点击启用)。
- 设备注册令牌
YYY的有效性可以后续验证,当前错误根源是权限问题,优先处理权限配置。
额外排查点
如果以上步骤完成后仍报错,检查服务账号是否被设置了条件访问限制(比如IP白名单、时间范围限制等),这类限制可能会阻断权限生效。
内容的提问来源于stack exchange,提问作者Cheok Yan Cheng
相关产品推荐
相关产品推荐

