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

FCM通过REST API发送推送无法送达iOS物理设备如何解决

问题根因

Firebase Console发推送双端都能正常接收,说明你的FCM配置、APNs证书、设备注册token全部是有效的。Postman发请求只有安卓能收到、iOS无响应,核心原因是请求payload不符合iOS端推送的参数规则:

  • 你错误把本该放在顶层的topic字段嵌套进了notification对象里,属于无效参数,FCM把请求转发给APNs时会直接过滤这类无效嵌套字段,甚至会触发APNs的payload校验规则,直接丢弃整条通知
  • 缺少iOS推送必填的APNs专属参数。Firebase Console发推送时会自动帮你补全所有iOS需要的特殊参数,但是自己构造API请求时不会自动补,缺参数的请求到APNs后不会触发系统通知展示
  • 没有配置iOS通知的提示音参数,iOS默认对没有携带sound字段的通知做静音处理,不会弹出提示,甚至前台状态下也不会在通知栏展示
修复后的可用请求体

直接替换你原来的JSON内容即可:

{
  "registration_ids": [
    "cr5bpZ2BQoqTYKHm3UA4U7:APA91bGNu..."
  ],
  "priority": "high",
  "topic": "weather",
  "content_available": true,
  "mutable_content": true,
  "notification": {
    "title": "FCMasd",
    "body": "messagingsdf tutorial",
    "sound": "default",
    "badge": 1
  },
  "data": {
    "msgId": "msg_12342"
  }
}
关键调整点说明
  • 字段位置修正:把topic从notification对象移到了请求最顶层,和registration_ids、priority平级,所有推送目标、优先级类的通用字段都要放在顶层,不要嵌套在notification或data内部
  • 新增content_available: true:对应APNs的content-available配置,开启后允许APP在后台状态被唤醒,同步推送携带的业务数据
  • 新增mutable_content: true:对应APNs的mutable-content配置,允许iOS通知服务扩展修改通知内容(比如展示图片、自定义操作按钮),部分iOS版本如果不传这个参数,通知根本不会展示
  • 新增sound: "default":指定通知播放系统默认提示音,不传的话iOS收到通知默认完全静音,用户感知不到
  • 新增badge: 1:配置APP桌面角标的数值,可以根据业务需求自行调整数值

额外排查点:如果改完参数还是收不到,检查你Postman调用的FCM接口是否和当前iOS环境匹配:如果是开发阶段用Xcode直装的沙箱包,要确认用的是沙箱环境对应的推送接口和设备token,不过既然Firebase Console能正常收到,这一步基本不用改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:30:10