FCM-Flutter推送通知失效5-6天,无代码变更请求排查协助
针对你遇到的「未修改代码/面板但FCM推送失效、控制台手动发送无状态反馈」问题,结合类似场景的排查经验,给出以下建议:
核验设备端FCM令牌有效性
在Flutter应用中主动获取并打印FCM令牌,调用FirebaseMessaging.instance.getToken()确认令牌能正常返回;同时检查onTokenRefresh回调是否正常触发且被正确处理,避免因令牌过期未更新导致推送失败。测试FCM API直接调用
使用项目的服务账号密钥,通过curl或Postman调用FCM发送接口(指定单个测试令牌),查看返回的响应结果。如果出现invalid_token、unauthorized等错误码,可针对性排查令牌合法性或服务账号权限问题。深挖控制台日志与事件数据
进入Firebase控制台的「项目设置 > 云消息传递」查看是否有推送相关的错误记录;同时在「Analytics > 事件」中筛选notification_received、notification_opened等事件,确认消息是否实际到达设备。若控制台无发送状态,可去Cloud Logging中过滤FCM相关日志,定位具体失败原因。检查设备端通知限制
确认用户设备是否开启了应用的通知权限,Android需检查通知渠道的启用状态,iOS需确认推送权限是否被关闭;另外排查设备是否处于低电量、Doze模式等限制后台活动的状态,这类场景会影响FCM消息的接收。排查依赖包兼容性
虽然未修改代码,但firebase_messaging依赖包可能存在隐性版本bug,或与其他项目依赖冲突。可查看pubspec.yaml中的依赖版本,尝试升级到最新稳定版测试(操作前备份代码)。提交Firebase官方工单
若以上排查均无结果,且状态页仅显示Campaign Metrics问题,可能是FCM后端的隐性故障。可通过Firebase控制台的支持渠道提交工单,提供项目ID、推送失败时间范围、测试令牌等信息,请求官方协助排查。
内容的提问来源于stack exchange,提问作者gurkan stack

