Firebase是否会自动设置APNS-Push-Type头?

19
根据iOS 13对APNS的更改, 静默推送通知需要额外的头信息(apns-push-type)。
我使用Firebase作为后端和移动端之间的中介,想知道当将content-available属性设置为true时,Firebase是否会自动设置提到的头信息。
正如这里所提到的,在AWS上已经发生了。
我能否在iOS上检查是否将此头信息传递给了静默推送通知?
我已经在我的设备上进行了测试,并且在更新Firebase依赖项到最新版本后,即使在后台也一切正常。但是我仍然没有任何证据表明该头信息的实际情况。

嗨@Nominalista,目前Firebase没有提供任何关于iOS 13更新的文档。你可以联系他们的支持,我猜他们会添加这个头文件,你可以在iOS 13中检查。我会在我的端上检查并更新你。 - Kushal Maniyar
谢谢,请告诉我,当您发现了什么时。 - Nominalista
3个回答

5

在稍微研究了一下并查看了一些开源项目更新其代码的方式后,以下是一个示例,展示如何向Firebase Admin Node添加apns-push-type

(我正在使用多播,因此您的解决方案可能会有所不同。)

const message = {
  priority: 'high',
  sound: 'default',
  notification: {
    title: 'Message Title',
    body: 'Message Body',
  },
  android: { ... },
  apns: {
    headers: {  // Add these 3 lines
      'apns-push-type': 'alert',
    },
    payload: {
      aps: {
        badge: 1,
        sound: 'default',
      },
    },
  },
  tokens: [ ... ],
};

admin.messaging().sendMulticast(message);

我只收到了一些通知失败的信息,所以我还不能完全确认问题是否已经解决。


4

这是我用来向iOS设备发送后台通知的内容。请注意,我设置的是"contentAvailable"而不是"content-available",所有内容都必须是字符串。

"apns": {
    "headers": {
      "apns-push-type": "background",
      "apns-priority": "5"
    },
    "payload": {
      "aps":{
        "contentAvailable": true
      }
    }
  }

我正在使用sendMulticast()方法, 完整示例看起来像这样:
var message = {
  "tokens": tokensArray,
  "data": {
    "info":"someInfo"
  },
  "apns": {
    "headers": {
      "apns-push-type": "background",
      "apns-priority": "5"
    },
    "payload": {
      "aps":{
        "contentAvailable": true
      }
    }
  }
};

await messaging.sendMulticast(message)

2
火力发电厂的支持回复了我的请求。
从今天起,如果设置了content_available,则Firebase不会自动设置apns-push-type标头。 应该通过ApnsConfig中的标头进行设置。 他们还建议升级到最新的管理SDK版本。
我另外设置了apns-priority标头。 不幸的是,所有步骤都没有解决我的问题。

1
你尝试过使用下划线吗?像 apns_push_type 这样的?请注意,对于苹果接受 content-available 属性,而 Firebase 则接受 content_available - Nominalista

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接