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

调用messaging.getToken()触发messaging/incorrect-gcm-sender-id错误,移除后消失

解决Firebase Cloud Messaging中messaging/incorrect-gcm-sender-id错误

这个问题我帮不少开发者排查过,本质原因很明确:只有当你调用messaging.getToken()触发令牌获取流程时,Firebase才会校验Web应用清单里的GCM发件人ID是否和项目配置匹配,不匹配就会抛出这个错误;而移除调用后校验流程不触发,错误自然就消失了。下面是具体的解决步骤:


步骤1:获取Firebase项目的正确发件人ID

打开Firebase控制台,进入你的项目:

  • 点击左侧菜单栏的「项目设置」(齿轮图标)
  • 切换到「云消息传递」标签页,找到「发件人ID」这一项,复制那串纯数字ID

步骤2:更新Web应用的manifest.json

找到你Web项目根目录下的manifest.json文件:

  • 确认文件中存在gcm_sender_id字段,并且它的值和你刚才复制的发件人ID完全一致
  • 如果没有这个字段,直接添加进去即可,示例如下:
    {
      "name": "你的应用名称",
      "short_name": "应用简称",
      "gcm_sender_id": "123456789012" // 替换成你的Firebase发件人ID
    }
    

步骤3:验证修复效果

  • 清空浏览器的缓存(避免旧的manifest被缓存)
  • 重启你的Web应用,再次调用messaging.getToken(),这个错误应该就不会再出现了

常见避坑提示

  • 别把项目ID和发件人ID搞混:项目ID通常是字符串加数字的组合,而发件人ID是纯数字
  • 如果是用Firebase CLI初始化的项目,有时候manifest不会自动配置正确,一定要手动检查
  • 确保你初始化Firebase时的firebaseConfig里的messagingSenderId,和manifest中的gcm_sender_id是同一个值——其实这两个本来就应该是一致的,Firebase的messagingSenderId就是GCM发件人ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:08:30