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

迁移FCM后新注册令牌发通知遇403 SenderId Mismatch错误

GCM迁移FCM后发送通知遇403(SENDER ID MISMATCH)问题排查

问题背景

将Web项目从旧版GCM迁移至FCM后,执行了以下操作:

  • 服务器端修改请求地址为https://fcm.googleapis.com/v1/projects/{my-project-id}/messages:send
  • 前端pushManager.subscribe添加Firebase Web Push证书的applicationServerKey,并移除manifest.webmanifest中的gcm_sender_id
  • 新注册令牌可正常获取并保存,但向新令牌发送通知时返回403 Forbidden,错误信息为SENDER ID MISMATCH;GCM时期的旧令牌发送无异常
  • 已确认Google Cloud与Firebase项目ID一致、关联同一账号,新建项目后问题仍存在

排查及解决方法

  • 恢复manifest.webmanifest中的固定Sender ID
    Web推送场景下,即使迁移到FCM,也必须在manifest中保留"gcm_sender_id": "103953800507"(这是Google通用的固定Sender ID,并非你的项目ID)。移除该字段会导致新订阅生成的令牌关联的Sender ID不匹配,触发403错误。恢复后需让用户重新订阅获取新令牌。

  • 验证applicationServerKey的正确性
    前端使用的VAPID密钥(即applicationServerKey)必须与当前FCM项目绑定。前往Firebase控制台→项目设置→云消息传递→Web配置,确认密钥归属,若有误则重新生成并替换前端配置。

  • 检查服务器端服务账号权限
    使用FCM v1 API时,服务器端认证用的服务账号需拥有Firebase Cloud Messaging Admin角色:

    1. 登录Google Cloud控制台→IAM与管理员→IAM
    2. 找到对应的服务账号,检查角色列表
    3. 若缺少该角色,点击编辑→添加角色,搜索并选择Firebase Cloud Messaging Admin
  • 确认新令牌的Sender ID归属
    可通过FCM测试工具验证新令牌绑定的Sender ID是否与项目一致。若不一致,说明前端订阅流程仍有配置错误,需重新核对VAPID密钥和manifest配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:07:18