Swift Firebase Cloud Messaging - 在后台发送上游消息



我在文档中找不到有关此主题的任何内容,所以我想我会在这里找到它。

FCM 文件指出:

当您的应用进入后台时,请断开与 FCM 的连接。

但是没有在哪里说为什么。

我想做的是在用户与推送通知(可以是本地或远程(交互时从设备发送 FCM 上游消息。

所以我有两个问题:

  1. 为什么 Firebase 建议我们在将应用发送到后台时断开与 FCM 的连接?
  2. 我可以在应用被终止、挂起或在后台运行时发送上游消息吗?

这种类型的功能,即用户与通知交互以及服务器即时响应,将成为我应用的主要部分,我需要知道Firebase是否可以做到这一点,否则我需要开始寻找另一种解决方案。

谢谢!

由于我无法在网上找到答案,我决定实现我的用例并观察行为。我发现了一些东西:

  • 您不能依赖 iOS 中的后台执行,例如保持 FCM 连接。系统可以并且将会在内存不足状态下终止你的应用。
  • 尝试在后台连接到 FCM 将不起作用。在后台发送的任何消息都将在下次打开应用时排队。
  • 即使您的后台代码保证运行(例如在通知操作期间(,FCM 也无法连接。

鉴于我的发现,我的问题的答案是:

  1. 因为您不能依赖iOS上的后台执行(请参阅上面的第一个项目符号(。
  2. 否,消息将在下次打开应用并建立有效的 FCM 连接时排队等待。