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

使用Firebase FCM V1调用返回403错误,请求技术支持

FCM V1接口403/404错误排查方案

一、403权限错误核心排查点

  • 检查服务账号角色:用gcloud auth application-default print-access-token获取的令牌,对应的服务账号必须拥有Cloud Messaging Admin或Firebase Admin角色。进入Firebase控制台「项目设置」→「服务账号」,找到应用默认服务账号,确认角色配置,未添加则补充Cloud Messaging Admin角色。
  • 验证令牌权限范围:运行命令gcloud auth application-default print-access-token | xargs curl -H "Authorization: Bearer {}" https://www.googleapis.com/oauth2/v3/tokeninfo,查看返回结果的scope字段是否包含https://www.googleapis.com/auth/firebase.messaging,无此范围则说明权限不足,重新配置服务账号后再获取令牌。
  • 确认项目ID准确性:请求URL中的项目ID必须和Firebase控制台的项目ID完全一致(不是项目名称),比如你返回结果里的languagechat-8e41c,要确保这个ID与服务账号绑定的项目匹配。

二、Postman 404错误排查

  • 核对请求URL格式:FCM V1的正确请求URL为https://fcm.googleapis.com/v1/projects/[你的项目ID]/messages:send,注意messages:send是英文冒号连接,无空格,URL中项目ID不能写错。
  • 检查请求头与Body格式:必须添加Content-Type: application/json和Authorization: Bearer [你的令牌]请求头,Body需为标准JSON格式,所有引号用英文双引号,避免语法错误。

三、React Native代码优化与调试

  • 禁止客户端直接调用FCM V1接口:当前代码硬编码令牌存在严重安全风险,FCM V1接口应部署在后端服务器,客户端仅需将设备令牌上传至后端,由后端处理通知发送逻辑。
  • 解析错误详情:修改代码,在获取response后添加错误信息解析,以便定位具体问题:
const response = await fetch('https://fcm.googleapis.com/v1/projects/ProjectCodeFromFirebase/messages:send', init);
const responseData = await response.json(); // 新增这行
log.dev('response data', responseData); // 打印详细响应内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:39:52