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

发送FCM通知时出现SENDER_ID_MISMATCH错误求助

解决FCM通知发送中的SENDER_ID_MISMATCH错误

刚踩过这个坑,给你整理几个最核心的排查方向,帮你快速解决这个403错误:

首先先明确你遇到的错误信息:

Caused by: com.google.api.client.http.HttpResponseException: 403 Forbidden
{ "error": { "code": 403, "message": "SenderId mismatch", "status": "PERMISSION_DENIED", "details": [ { "@type": "type.googleapis.com/google.firebase.fcm.v1.FcmError", "errorCode": "SENDER_ID_MISMATCH" } ] } }

这个错误本质就是发送通知的服务器端凭据对应的Sender ID,和客户端注册FCM Token时用的Sender ID不是同一个,下面是具体的排查步骤:


  • 确认跨端Sender ID完全一致
    客户端注册FCM时,google-services.json里的project_number就是你的Sender ID;服务器端用来发通知的凭据(Server Key或服务账号)必须属于同一个Firebase项目。你可以这么核对:

    1. 打开Firebase控制台,进入你的项目→「项目设置」→「云消息传递」,查看当前项目的Sender ID;
    2. 找到客户端的google-services.json文件,搜索project_number字段,对比两者是否完全相同(注意不要有空格、大小写错误);
    3. 如果用的是服务账号,去Google Cloud控制台的「IAM与管理员」→「服务账号」,查看该账号所属的项目ID是否和Firebase项目一致。
  • 验证FCM Token的归属
    如果客户端之前切换过Firebase项目,或者缓存了旧的Token,就会导致不匹配。建议:

    • 在客户端主动调用Token刷新方法(比如Android上的FirebaseMessaging.getInstance().getToken()),获取最新的Token后重新测试;
    • 清理客户端的应用数据,确保没有残留的旧Token被使用。
  • 检查服务器端凭据的权限与正确性

    • 若使用Server Key:确保这个Key是从正确的Firebase项目「云消息传递」页面获取的,且没有设置IP限制(或者你的服务器IP在允许列表中);
    • 若使用服务账号:确认服务账号已经被授予「Cloud Messaging Admin」角色,并且初始化FCM客户端时使用的是该项目的服务账号密钥文件(service-account-key.json)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:26:21