通过 firebase 云消息检查设备是不是离线

Posted

技术标签:

【中文标题】通过 firebase 云消息检查设备是不是离线【英文标题】:Check if device is offline with firebase cloud messaging通过 firebase 云消息检查设备是否离线 【发布时间】:2016-08-25 16:32:44 【问题描述】:

当通过 Firebase Cloud Messaging 发送消息时,来自 FCM 服务器的响应会告知请求的处理过程,但不会告知请求是否已发送到设备。

那么,对于离线设备,我们如何知道消息是否已送达?

例如,

"multicast_id":7138524052704576147,"success":1,"failure":0,"canonical_ids":0,"results":["message_id":"0:1472139369768700%d42090b5d42090b5"]1

上面的 JSON 是 FCM 服务器对 time_to_live:0 和 priority:'high' 请求的响应,但情况是我要接收消息的设备处于脱机状态。

有什么方法可以检测设备是否离线?

【问题讨论】:

【参考方案1】:

是的。如果您将 FCM API 密钥与开发者控制台相关联,您可以访问 View FCM statistics and issues。特别是:

使用 FCM 诊断,您可以对通过 FCM 发送的消息进行故障排除。您可以通过注册令牌或消息 ID 查找消息。

您可以使用注册令牌或消息 ID 查找通过 Firebase 云消息传递发送的消息。

返回的message status表示消息是否已投递、存储、过期等

请注意,只有在您最近提出请求时才应使用此诊断工具。这就是开发者控制台在 FCM 诊断部分中所说的内容:

这不是实时诊断工具,显示的数据可能会过时几分钟,并且只保留几天。如果您没有看到预期的数据,请稍后再试。

【讨论】:

好像 google 禁用了这个功能,我们在 Google Play Console 中看不到它

以上是关于通过 firebase 云消息检查设备是不是离线的主要内容,如果未能解决你的问题,请参考以下文章

设备未收到 Firebase 云消息通知

Firebase 云消息传递 - 检查现有或可用主题

设备未收到Firebase云消息传递通知

Firebase 云消息传递无法在某些设备上运行

从延迟和安全角度来看,Firebase 云消息传递类型之间有啥区别?

在 FCM(Firebase 云消息传递)中,在通知中包含令牌是不是安全?