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

如何使用Firebase Cloud Messaging新send()函数实现通知即时送达?

使用Firebase Messaging send()函数实现Android来电即时通知

针对你提到的sendToDevice弃用后改用send()函数,同时保证来电通知即时送达的需求,以下是改造方案:

改造后的代码实现

// 构建符合send()要求的Message对象
const message = {
  token: deviceFcmId,
  data: data,
  android: {
    priority: "high",
    ttl: 0
  }
};

// 发送消息
admin.messaging().send(message)
  .then(response => {
    console.log("来电通知发送成功:", response);
  })
  .catch(error => {
    console.error("发送来电通知失败:", error);
  });

关键配置说明

  • 高优先级设置:在android字段下配置priority: "high",确保FCM将此消息列为高优先级处理,即使设备处于低功耗或后台状态,也会立即唤醒设备接收通知,满足来电几秒内送达的要求。
  • TTL=0:设置ttl: 0表示消息不允许被FCM存储等待后续送达,若设备当前离线,消息会直接丢弃——这符合来电通知的时效性,错过的来电无需再推送。
  • 目标设备指定:通过token字段传入目标设备的FCM ID,替代原sendToDevice的第一个参数。

可选兼容配置(若支持iOS)

如果你的应用需要兼容iOS设备,需补充APNs相关配置以保证iOS端的即时推送:

const message = {
  token: deviceFcmId,
  data: data,
  android: {
    priority: "high",
    ttl: 0
  },
  apns: {
    payload: {
      aps: {
        contentAvailable: true,
        priority: 5
      }
    },
    headers: {
      "apns-priority": "5"
    }
  }
};

内容的提问来源于stack exchange,提问作者Sujith S Manjavana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:21:31