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

升级FCM HTTP v1 API时遇SenderId mismatch 403错误求助

解决FCM HTTP v1 API的「SenderId mismatch」403错误

以下是针对该错误的排查与解决步骤:

1. 核对项目SenderId与设备Token的归属

设备Token由特定Firebase项目的SenderId生成,必须确保:

  • 你使用的service-account.json所属的Firebase项目,和生成deviceToken的项目完全一致。
  • 检查方式:登录Firebase控制台→进入目标项目→「项目设置」→「云消息传递」,查看项目的Sender ID;对比设备端获取Token时配置的SenderId是否完全匹配。

2. 修正API请求URL中的项目ID拼写错误

你的代码中请求URL里的projct_id是拼写错误(缺失字母e),需替换为真实的Firebase项目ID(可直接从service-account.json的project_id字段复制):

// 原错误URL
'https://fcm.googleapis.com/v1/projects/projct_id/messages:send'
// 修正后(替换为你的真实项目ID)
'https://fcm.googleapis.com/v1/projects/your-real-project-id/messages:send'

3. 简化代码:直接使用Firebase Admin SDK发送消息

你已初始化Firebase Admin SDK,无需手动通过google-auth-library获取Token再用axios发起请求——Admin SDK已封装完整的FCM发送逻辑,代码更简洁且不易出错:
修改sendFcmMessage函数如下:

async function sendFcmMessage(message) {
  try {
    const response = await admin.messaging().send(message);
    console.log('Successfully sent message:', response);
  } catch (error) {
    console.error('Error sending message:', error);
  }
}

4. 验证设备Token的有效性

若设备Token是旧数据、或来自其他Firebase项目,也会触发该错误。可尝试在设备端重新生成Token,确保其为当前项目下的有效Token。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:35:05