调用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
相关产品推荐
相关产品推荐

