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

Push notification 使用FCM服务时Firebase通知无法正常工作,push-notification,notifications,firebase-cloud-messaging,google-cloud-firestore,android-notifications,Push Notification,Notifications,Firebase Cloud Messaging,Google Cloud Firestore,Android Notifications,有时FCM发送消息,有时设备上出现延迟或从未收到。 如果FCM不可靠,请建议推送通知的替代方案。FCM在以下设备上创建通知问题 连接到Xcode的iPhone 6收到通知 运行testflight版本的iPhone 6收到通知 运行app store版本的iPhone 6收到通知 连接到Xcode的iPhone 6 Plus会收到通知 运行testflight版本的iPhone 6 Plus会收到通知 iPhone 6 Plus正在运行的应用商店版本收到通知 运行testflight版本的iP

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

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

  • 连接到Xcode的iPhone 6收到通知
  • 运行testflight版本的iPhone 6收到通知
  • 运行app store版本的iPhone 6收到通知
  • 连接到Xcode的iPhone 6 Plus会收到通知
  • 运行testflight版本的iPhone 6 Plus会收到通知
  • iPhone 6 Plus正在运行的应用商店版本收到通知

  • 运行testflight版本的iPhone X未收到

解决方案:

出于某种原因,iPhone X需要负载包含“notification:{”title:“xxx”,“body:“xxx”}”,这毫无意义,因为iPhone 6和iPhone 6 plus可以在没有添加负载的情况下接收推送通知。。。现在的问题是,向有效负载添加“通知”将使iOS在收到通知后立即在托盘上显示通知,这与我想要传递的“无声”通知的目的背道而驰

以下是之前的有效负载,它不适用于iPhone X,但适用于iPhone 6和iPhone 6 plus(FCM负责添加内容可用标签):

这是一个与iPhoneX一起使用的,并在后端将优先级设置为高

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

为了提高网络使用率,FCM服务会批量响应on MessageSent()和on SendError(),因此对每条消息的确认可能不会很快。如果您在此处共享代码和方法,效果会更好。
{"message": {"token" : "eANw_OLOKXc:APA.....XsMg", "notification":{"title":"xxx","body":"xxx"},"data" : {"content" : "2546|N|495....arg|BATTERY|||||"}}}