我在文档中找不到有关此主题的任何内容,所以我想我会在这里找到它。
FCM 文件指出:
当您的应用进入后台时,请断开与 FCM 的连接。
但是没有在哪里说为什么。
我想做的是在用户与推送通知(可以是本地或远程(交互时从设备发送 FCM 上游消息。
所以我有两个问题:
- 为什么 Firebase 建议我们在将应用发送到后台时断开与 FCM 的连接?
- 我可以在应用被终止、挂起或在后台运行时发送上游消息吗?
这种类型的功能,即用户与通知交互以及服务器即时响应,将成为我应用的主要部分,我需要知道Firebase是否可以做到这一点,否则我需要开始寻找另一种解决方案。
谢谢!
由于我无法在网上找到答案,我决定实现我的用例并观察行为。我发现了一些东西:
- 您不能依赖 iOS 中的后台执行,例如保持 FCM 连接。系统可以并且将会在内存不足状态下终止你的应用。
- 尝试在后台连接到 FCM 将不起作用。在后台发送的任何消息都将在下次打开应用时排队。
- 即使您的后台代码保证运行(例如在通知操作期间(,FCM 也无法连接。
鉴于我的发现,我的问题的答案是:
- 因为您不能依赖iOS上的后台执行(请参阅上面的第一个项目符号(。
- 否,消息将在下次打开应用并建立有效的 FCM 连接时排队等待。