确保以 fcm 推送交付

Posted

技术标签:

【中文标题】确保以 fcm 推送交付【英文标题】:Ensure push delivery in fcm 【发布时间】:2017-08-20 14:20:36 【问题描述】:

我在基于 cordova 的应用程序中使用 fcm,它大部分都可以工作,但是有时推送消息不会传递到设备,尽管服务器上的 api 调用返回成功。如果应用程序关闭大约 10-12 小时,这主要发生在小米手机上。感觉就像一段时间后手机会关闭导致此问题的应用程序的所有后台活动。重新启动应用程序后,推送消息开始正常发送。有什么建议吗?

【问题讨论】:

【参考方案1】:

Firebase documentation 解释说:

当应用服务器向 FCM 发布消息并收到消息 ID 时 返回,这并不意味着消息已经传递到 设备。相反,这意味着它已被接受交付。什么 消息被接受后会发生什么取决于许多因素。

因此,当您调用 api 并返回成功时,并不意味着消息已送达。

FCM 仍然存在可靠性问题:How reliable is Firebase Cloud Message?

在小米设备上,FCM 因自定义 android 调整以提高整体电池寿命而被淘汰。阅读更多Xiaomi does not receive notification when application is not running

【讨论】:

但是有没有办法解决它?像某种方式能够定期重启 FCM 进程或者如果它被杀死?

以上是关于确保以 fcm 推送交付的主要内容,如果未能解决你的问题,请参考以下文章

推送通知已交付,但 didReceiveRemoteNotification 从未被称为 Swift

FCM 控制台推送测试目前坏了? (安卓)

停止向 Apple 发送推送通知以进行交付

FCM通知交付报告

Firebase FCM 使用 Cloud Functions 延迟交付

苹果推送通知错误