Firebase 通知无法使用 FCM 服务正常工作

Posted

技术标签:

【中文标题】Firebase 通知无法使用 FCM 服务正常工作【英文标题】:Firebase notification not working properly using FCM service 【发布时间】:2018-10-30 10:52:45 【问题描述】:

有时 FCM 发送消息,有时会在设备上发生或从未收到延迟。 如果 FCM 不可靠,请建议推送通知的替代方案。

【问题讨论】:

为了提高网络使用率,FCM 服务在 MessageSent() 和 SendError() 上批量响应,因此对于每条消息的确认可能不会很快 如果你在这里分享你的代码和方法会更好。 【参考方案1】:

FCM 在以下设备上创建通知问题,

连接到 Xcode 的 iPhone 6 收到通知 运行 testflight 版本的 iPhone 6 收到通知 运行应用商店版本的 iPhone 6 收到通知 连接到 Xcode 的 iPhone 6 Plus 收到通知 运行 testflight 版本的 iPhone 6 Plus 收到通知

运行应用商店版本的iPhone 6 Plus收到通知

iPhone X 运行 testflight 版本不接收

解决方案:

由于某种原因,iPhone X 需要有效载荷包含“通知:“title”:“xxx”,“body”:“xxx””,这没有任何意义,因为 iPhone 6 和 iPhone 6 plus 可以接收没有添加有效负载的推送通知......现在的问题是,向有效负载添加“通知”将使 ios 在收到通知后立即在托盘上显示通知,这超出了我想要传递的“无声”通知的目的。

以下是之前在 iPhone X 上不工作但在 iPhone 6 和 iPhone 6 plus 上工作的有效负载(FCM 负责添加内容可用标签):

"message": "token" : "eANw_OLOKXc:APA.....XsMg", "data" : "content" : "2546|N|495....arg|BATTERY|||||"

这是适用于 iPhone X 并在后端将优先级设置为高的那个。

"message": "token" : "eANw_OLOKXc:APA.....XsMg", "notification":"title":"xxx","body":"xxx","data" : "content" : "2546|N|495....arg|BATTERY|||||"

【讨论】:

以上是关于Firebase 通知无法使用 FCM 服务正常工作的主要内容,如果未能解决你的问题,请参考以下文章

通过向 FCM 单个设备发送通知来反应本机 Firebase iOS 生产无法正常工作

无法使用服务器 API 发送推送通知

如何显示随服务器发送的FCM Firebase通知

如何在应用程序处于后台(ios)时使 FCM 通知正常工作?

如何显示与服务器一起发送的 FCM Firebase 通知

带有 ReactJS 和 Webpack 的 Firebase FCM 无法正常工作:我们无法注册默认服务工作者