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

3
有时候FCM发送消息会有延迟或者设备根本收不到。如果FCM不可靠的话,那么请建议推送通知的替代方案。

2
为了增强网络使用,FCM服务会批量处理onMessageSent()和onSendError()的响应,因此每条消息的确认可能不会很快。 - Haider Ali
如果您在这里分享您的代码和方法,那将会更好。 - Meeran Tariq
1个回答

4

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

  • 连接到Xcode的iPhone 6可以接收通知
  • 运行TestFlight版本的iPhone 6可以接收通知
  • 运行应用商店版本的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可以在没有添加该负载的情况下接收推送通知...现在的问题是,将“notification”添加到负载中会使iOS在接收到通知后立即在托盘上显示通知,这违背了我想要传递的“静默”通知的目的。

以下是以前的负载,在iPhone X上不起作用,但在iPhone 6和iPhone 6 Plus上起作用(FCM负责添加content-available标记):

{"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|||||"}}}

我似乎遇到了同样的问题;对于一个新的、更新的应用程序,除非负载中包含 "notification":{"title":"xxx"},否则我们将无法接收到推送通知(尽管我们并不想要任何通知)。你找到答案了吗? - Nils

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接