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

Flutter应用FCM API消息发送成功但设备未接收问题排查

FCM API返回成功但设备未收到通知的可能原因
  • 设备未订阅目标主题:你用/topics/all作为推送目标,但需要确保所有设备都执行了FirebaseMessaging.instance.subscribeToTopic('all')并订阅成功。Firebase控制台测试是直接推送设备令牌,和主题推送逻辑不同,未订阅的设备自然收不到主题消息。
  • 前台消息未手动处理:如果应用处于前台,FCM默认不会自动弹出通知,需要在onMessage回调里手动调用本地通知插件(如flutter_local_notifications)来显示通知。检查你的消息监听代码是否处理了前台接收的情况。
  • Android通知渠道缺失:Android 8.0及以上系统要求通知必须关联有效渠道。API推送的消息如果未指定notification.channel_id,可能无法显示。确认应用已创建通知渠道,且在推送参数的android.notification里添加channel_id字段。
  • 主题无有效订阅者:FCM即使在主题没有订阅者的情况下,也会返回200和message_id。可以在Firebase控制台的「云消息传递」->「主题」里查看all主题的订阅人数,确认有设备订阅。
  • 服务器密钥错误:虽然请求返回成功,但要确认Authorization头里的key是Firebase控制台生成的服务器密钥,而非Web API密钥或其他类型密钥。服务器密钥可在项目设置的「云消息传递」页面获取。
  • 设备令牌过期/无效:部分设备的FCM令牌可能已过期或失效,导致无法接收推送。可在应用启动时获取当前令牌并验证,同时通过onTokenRefresh事件监听令牌更新,及时同步到服务器。
  • 系统后台限制:如果设备处于Doze模式、应用被后台冻结,即使设置了high优先级,消息也可能被延迟或拦截。测试在应用前台或设备未进入省电模式时发送消息,排除系统限制影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 23:47:37