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

Node.js Firebase Admin FCM V1 API:发送仅数据消息时设置contentAvailable为false

解决FCM V1 API发送仅数据消息时iOS APP关闭不接收的问题

错误原因

APNs规范中,content-available字段仅接受值1(表示开启后台唤醒),设置0属于无效参数,这是你收到"Request contains an invalid argument"错误的直接原因。

解决方案

要实现iOS APP关闭时不接收仅数据消息,核心是阻止FCM自动为APNs payload添加content-available:1(FCM发送纯数据消息时默认会添加该字段以唤醒后台APP)。具体做法是在apns.payload.aps中添加一个空的alert字段,无需设置content-available:

await this.app.messaging().send({
  token: deviceToken,
  data: { test: 'Hello World' },
  apns: {
    payload: {
      aps: {
        alert: {} // 添加空alert字段,避免FCM自动注入content-available
      },
    }
  },
});

原理说明

当发送纯数据消息时,FCM默认会为iOS设备设置content-available:1,允许APP在后台唤醒处理数据。通过添加alert字段(即使是空对象),FCM会将消息识别为「通知+数据」的混合类型,此时不会自动添加content-available字段,iOS系统也就不会在APP关闭时唤醒接收该消息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:32:16