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

29
我正在测试Firebase JSON以检查通知发送到新闻应用程序的送达收据。我可以成功地将消息发送到Android应用程序,没有任何问题,并且我在我的Android应用程序上接收到消息。但是,我想知道如何在哪里检查通知是否成功传递到Android应用程序?
如何使用返回的message_id和/或multicast_id来获取通知的传递状态?我找不到检查Firebase交付状态的工作代码示例。是否有任何人拥有通过message_id和/或multicast_id或其他方式查询Firebase消息的交付状态的工作JSON代码?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
    }
  }

Postman 的输出结果:

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

1
你好,您可以在 Google Play 商店页面上的 FCM 诊断页面上检查您的应用程序的状态。输入消息 ID,它应该会显示您的状态。 - FrankR
1
我们希望通过远程应用程序来获取状态,因此我们需要一个JSON示例。 - support ecommunicate
2
我认为目前没有这方面的API。您可以联系Google,看他们能否确认这一点。此外,请注意,通过FCM API发送的任何消息或发送到主题的消息都不会出现在Firebase控制台中。 - FrankR
2个回答

8

更新:

自2017年11月30日起,诊断工具已经被移除:

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


确认用户@user7410521在评论区所说的。目前没有可用的API可以利用消息ID/多播ID来检索发送消息的传递状态详细信息,除非使用FCM诊断页面。请注意,诊断页面仅在应用程序已发布(用于Alpha测试或更高版本)时才可用。

我注意到您在负载中包括了delivery_receipt_requested参数。收到消息确认应足以确定设备已接收到该消息。


2
@ AL 我们如何使用Firebase和JSON请求接收交付确认?请给我们一个例子。 - support ecommunicate

-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进行比较。基于此,您可以进一步实现您的逻辑。


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