很久以前,我在Android应用程序中使用了GCM。它有一个缺点。当从 GCM 触发消息到我的 Android 应用程序时,如果设备未连接到互联网,则应用程序不会收到该消息。联机时也不会收到该消息。FCM也有同样的缺点吗?
如果设备未连接到 FCM,则会存储消息,直到建立连接(再次遵循折叠键规则(。建立连接后,FCM 会将所有待处理的消息传送到设备。如果设备再也无法连接(例如,如果设备已恢复出厂设置(,则消息最终会超时并从 FCM 存储中丢弃。默认超时为四周,除非设置了 time_to_live 标志。
https://firebase.google.com/docs/cloud-messaging/concept-options
你设置的 0 值time_to_live
参数?
请记住,
time_to_live
值为 0 表示消息 不能立即交付的将被丢弃。
在 Android 和 Web/JavaScript 上,您可以指定消息的最长生命周期。该值的持续时间必须介于0 到 2,419,200 秒(28 天(之间,并且对应于 FCM 存储和尝试传递邮件的最长时间。不包含此字段的请求默认为最长期限为四周。