如何查看发送到Android应用程序的Firebase消息的发送状态?

时间:2017-01-17 15:16:08

标签: android firebase firebase-cloud-messaging confirmation

我正在测试Firebase JSON,以检查发送到新闻应用的通知的送达回执。我可以成功地将消息发送到Android应用程序而没有任何问题,我在我的Android应用程序上收到消息。但是,我想知道如何以及在哪里可以检查通知是否已成功发送到Android应用程序?

如何使用返回的message_id和/或multicast_id来获取通知的投放状态?我无法找到使用Firebase检查交付状态的工作代码示例。是否有人使用JSON代码通过message_id和/或multicast_id或其他方式查询Firebase消息的投放状态? Firebase文档没有提供有关如何执行此操作的示例(或者我可能错过了示例)。

请参阅下面用于向Firebase新闻应用发送通知的Firebase JSON。任何人的帮助都非常感谢。

在标题中,我设置了授权key=firebase_server_key 和内容类型设置为application/json

{
    "to" : "token received from firebase",
    "notification" : {
      "body" : "test",
      "title" : "Alert",
      "icon" : "myicon",
      "delivery_receipt_requested": true
    }
  }

邮递员输出:

{"multicast_id":7845213569874521,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:4853214789631%31bd1c9631bd1c96"}]}

2 个答案:

答案 0 :(得分:8)

更新

The Diagnostics Tool has been removed since Nov. 30, 2017

  

您无法再在Play控制台中访问FCM诊断数据。

确认@ user7410521在评论部分中说了什么。除了使用FCM Diagnostics Page之外,目前没有可用的API来使用message_id s / multicast_id来检索所发送邮件的投放状态的详细信息。还要记住,“诊断”页面仅在应用程序已发布时可用(对于Alpha测试或更高版本)。

我注意到您在有效负载中包含了delivery_receipt_requested参数。接收消息确认应足以确定设备是否收到消息。

答案 1 :(得分:-2)

虽然到目前为止还没有API,但我也能找到答案。我尝试了一个工作方式。从服务器端PHP我发送FCM消息。让我介绍一下我是如何用PHP处理的。

$fcm_return = fcm_message_send($message);
$fcm_return_JSON = json_decode($fcm_return, true);
echo $$fcm_return_JSON['success'];

当我向一个设备发送消息时,我将返回与1进行比较。基于此,您可以进一步实现您的逻辑。