如何使用kreait/firebase-php批量发送Firebase云消息及报错排查
解决kreait/firebase-php批量发送FCM消息报错‘Operation is not implemented, or supported, or enabled.’
1. 检查版本兼容性
- 确保使用的kreait/firebase-php版本支持
sendAll方法,该方法从v5版本开始提供。若使用旧版本,执行以下命令升级到最新稳定版:composer update kreait/firebase-php
2. 验证服务账号权限
- 登录Firebase控制台,进入项目的IAM与管理员页面,找到对应服务账号(即
firebase_cloud_messaging.json关联的账号)。 - 确认账号拥有
Cloud Messaging Admin或Editor角色,权限不足会导致操作被拒绝。
3. 确认FCM服务已启用
- 进入Firebase控制台的云消息传递页面,检查服务是否正常启用,未被禁用或限制。
4. 修正消息格式细节
- 代码中通知标题存在拼写错误(
Tittle...应为Title...),虽非直接报错原因,但建议修正以避免消息展示异常:->withNotification([ 'title' => "Title...", 'body' => "Message", ]);
5. 测试单条消息发送
- 先尝试发送单条消息验证基础功能是否正常,排除批量逻辑外的问题:
// 测试单条消息 $testMessage = CloudMessage::withTarget('token', $users[0]['registration_token']) ->withNotification(['title' => "Test Title", 'body' => "Test Message"]); $result = $messaging->send($testMessage); var_dump($result);
6. 校验服务账号文件有效性
- 确认
firebase_cloud_messaging.json是从Firebase控制台正确下载的,文件内容未被篡改,包含正确的项目ID、客户端邮箱等核心信息。
内容的提问来源于stack exchange,提问作者sanjay solanki
相关产品推荐
相关产品推荐

