Firebase云消息传递(FCM)诊断告诉我们什么?

4
我在我的Android应用程序中成功实现了FCM,但是控制消息传递到设备所需的时间有些困难,并且受到许多因素的影响(包括FCM本身、覆盖范围、wifi/3g心跳、优先级、睡眠状态、空闲等等)。
显然,即时推送非常好,但是对于同一版本的应用程序,在完全相同的位置上放置相同的设备一段时间后,存在相当大的差异(有时我移动它,消息就会突然传递)。 FCM诊断非常有用,以下是一些示例;
MESSAGE 0:1485... PERFECT (BURGLAR APPREHENDED)
Current Status  Acknowledged
Collapse Key    n/a
TTL     2,419,200
TIME        CURRENT STATUS
Jan 31, 5:33 PM Device connected
Feb 1, 4:44 PM  Accepted
Feb 1, 4:44 PM  Delivered
Feb 1, 4:45 PM  Acknowledged

消息 0:14860...有点慢(小偷拿走了电视)

Current Status  Acknowledged
Collapse Key    n/a
TTL     2,419,200
TIME        CURRENT STATUS
Feb 3, 11:04 AM Device connected
Feb 3, 11:30 AM Accepted
Feb 3, 11:30 AM Delivered
Feb 3, 11:42 AM Acknowledged

消息 0:1485... 延迟 (入室盗窃者带走了保时捷和电视)

Current Status  Acknowledged
Collapse Key    n/a
TTL     2,419,200
TIME        CURRENT STATUS
Jan 25, 9:42 PM Device connected
Jan 26, 3:57 AM Accepted
Jan 26, 3:57 AM Delivered
Jan 26, 3:58 AM Device disconnected
Jan 26, 4:15 AM Device connected
Jan 26, 4:15 AM Sent on reconnect
Jan 26, 4:15 AM Acknowledged

我能看到发生了什么,但是我并没有很好地确定原因。大多数时候它都很出色(已经有几个月了),但第二天就不行了。

我的具体问题:是否有更深入的访问FCM事务状态的方法..?

我特别想知道我的“priority”参数是否真正传递并被FCM处理。下面是发送到FCM的典型json片段。

{"priority":"high","to":"dI3au0W8te...N7F","data":{"msgsndr":"ADMIN","msgtext":"URGENT: UNAUTHORISED ENTRY IN PROGRESS"}}

任何建议都将不胜感激。
1个回答

2

有没有更深入访问 FCM 事务状态的方法?

据我所知,这就是全部了。在诊断中没有更深入的细节可用。但是如果您遇到问题并需要进一步了解后台发生的事情,建议您联系 Firebase 支持

对于优先级 priority,只要您正确声明,我很确定它会始终被成功传递。


谢谢AL,我会与他们联系,并查看是否有确切的方式可以知道优先级参数是否达到了预期效果。 - rangi
1
除此之外,我已经联系了Firebase支持团队,他们的回复如下: - rangi
1
很遗憾,消息的优先级未被记录,因此在诊断工具中不可见。此外,对于消息,没有完全的传递保证。因此,如果像AL所指出的那样正确声明了“优先级”,似乎它确实起作用,并且即使设备处于“睡眠”状态和心跳之间,也会将数据消息推送到设备。 - rangi
1
很不幸,自2017年11月20日起,FCM诊断已从Google Play控制台中删除,这使情况变得更糟了。 “我知道FCM诊断对您在故障排除FCM消息方面至关重要,但不幸的是,它已被弃用。 请放心,我们正在开发一些更好的东西,应该能够提供更多有关消息传递期间出现问题的见解,但我们无法分享任何时间表。我会在内部分享您的关注,并继续努力推出这个新功能。ツ” - rangi
感谢分享 @rangi,我猜这是来自官方 Firebase 支持的反馈。 - AL.
显示剩余2条评论

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