FCM HTTP v1迁移后发通知遇SenderId mismatch 403错误求助
解决FCM "SenderId mismatch" 403错误的方案
1. 核对客户端与后端的Sender ID
- 打开客户端(Android/iOS)的
google-services.json或GoogleService-Info.plist,找到project_number(即Sender ID)。 - 登录Firebase控制台,找到后端使用的FCM项目,进入「项目设置」→「云消息传递」查看Sender ID,确保和客户端的完全一致。
- 检查Laravel项目配置,比如
.env里的FCM_SENDER_ID或者config/fcm.php中的对应值,必须和上述Sender ID完全匹配。
2. 验证设备注册令牌的归属
- 数据库中
Driver模型对应的FCM令牌,可能来自其他Firebase项目或旧项目的过期令牌。重新在客户端获取新的注册令牌,更新到数据库后再测试。 - 如果是测试环境,确认后端是否使用了对应测试环境的Firebase凭据,避免生产、测试项目混淆。
3. 检查Google OAuth与FCM项目的关联
- 你使用Google OAuth连接时,要确保OAuth所用的Google项目和FCM服务所在的Firebase项目是同一个,或已完成正确关联。跨项目的凭据会直接导致Sender ID不匹配。
4. 排查通知类中的Sender ID设置
- 打开
DriverNewFcmNotification类,检查发送FCM请求时是否手动指定了Sender ID,若有则确认该值与客户端的一致。部分FCM SDK会自动从凭据读取Sender ID,但手动指定错误值也会触发该错误。
内容的提问来源于stack exchange,提问作者Viacheslav Smolinskyi
相关产品推荐
相关产品推荐

