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

FCM v1遇SenderId mismatch权限拒绝错误,求助生成正确服务器密钥

解决FCM v1 403(SenderId mismatch)问题及正确生成服务器密钥方法

1. 确认Sender ID与服务账号的关联

  • 登录Firebase控制台,进入项目设置 →「云消息传递」标签,复制页面顶部的Sender ID。
  • 打开「服务账号」标签,找到用于生成Bearer Token的服务账号,确认该账号已被授予「Cloud Messaging Admin」或「Editor」及以上权限。
  • 检查服务账号对应的项目是否和当前FCM项目完全一致,禁止跨项目使用凭证。

2. 正确生成FCM v1所需的Bearer Token

FCM v1不再使用旧版服务器密钥,需依赖服务账号JSON密钥生成Bearer Token,步骤如下:

  • 在Firebase控制台「服务账号」页面,点击「生成新的私钥」,下载JSON格式的服务账号密钥文件。
  • PHP生成Token的正确代码(依赖Google官方客户端库):
    require __DIR__ . '/vendor/autoload.php';
    
    $credentials = \Google\Auth\Credentials\ServiceAccountCredentials::fromJsonKeyFile(
        '/path/to/your-service-account-key.json',
        'https://www.googleapis.com/auth/firebase.messaging'
    );
    
    $token = $credentials->fetchAuthToken()['access_token'];
    
  • Postman测试手动生成Token(需安装gcloud CLI并完成登录授权):
    1. 终端运行命令:
      gcloud auth application-default print-access-token
      
    2. 确保生成Token时使用当前FCM项目的默认应用凭证,避免切换至其他项目。

3. 检查请求中的关键配置

  • 请求体中的topic、token或condition必须属于当前FCM项目下的设备/主题。
  • 请求头Authorization字段格式严格为Bearer {your-token},且Token未过期(有效期约1小时)。

4. 定位错误根源

SenderId mismatch错误通常由以下原因导致:

  • 生成Token的服务账号不属于当前FCM项目。
  • 请求目标设备的FCM注册令牌是在其他Firebase项目下生成的。
  • 服务账号未配置firebase.messaging权限范围。

5. 替换旧版服务器密钥(若误用)

FCM v1接口不支持旧版服务器密钥,需完全替换为上述Bearer Token调用方式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:23:14