在 Firebase 云消息传递中,iOS 是否有替代 ttl“生存时间”的替代方法?

Ale*_*lii 7 ios firebase firebase-cloud-messaging

我正在使用 admin sdk 发送通知。

这是我的有效载荷。我能够为 Android 设置 ttl(生存时间),但我不确定如何为 iOS 设置它。

基本上,如果通知无法发送,那么我根本不想重新发送它。

         const payload = {
             notification: {
                title: 'New Appointments!',
                body: '',
              },
             data: {},
             android: {
               ttl: 1000, 
             },
             apns: {
               payload: {
                 aps: {
                   badge: 1,
                  "sound":"default"
                 },
               },
             },
            };
admin.messaging().send(payload).then((response) => {})
Run Code Online (Sandbox Code Playgroud)

AL.*_*AL. 6

我认为您正在寻找apns-expiration

以秒 (UTC) 表示的 UNIX 纪元日期。此标头标识通知不再有效并可丢弃的日期。

如果此值不为零,APNs 会存储通知并尝试至少发送一次,如果第一次无法发送通知,则根据需要重复尝试。如果值为 0,则 APNs 将通知视为立即过期,并且不会存储通知或尝试重新发送通知。

ttlFCM 文档中可以看到这样的一个例子:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    },
    "apns":{
      "headers":{
        "apns-expiration":"1604750400"
      }
    },
    "android":{
      "ttl":"4500s"
    },
    "webpush":{
      "headers":{
        "TTL":"4500"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)