gpt4 book ai didi

android - 如何诊断 GCM 结果为 'Success' 但未到达设备的通知

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:18 25 4
gpt4 key购买 nike

这实际上是另一个 question 的延续我已发布,但现在我正在使用 Azure 的推送通知遥测,并且 Google 已停止在 Play 管理中心中进行 FCM 诊断。

我收到用户的报告,称他们没有收到通知。但 Azure 遥测显示的结果如下,即使对于这些通知也是如此:

"GcmOutcomeCounts": {
"Outcome": {
"Name": "Success",
"Count": "1"
}
}

Crashlytics 显示没有崩溃,因此我唯一想到的就是调用日志记录 API 来查看它在哪里失败或停止工作,但在这种情况下它甚至从未到达应用程序。

必须有一种方法可以准确地找出通知失败的位置和原因。它是什么?

最佳答案

There has to be a way of figuring out exactly where and why the notification fails. What is it?

这是我的 2 美分。一般来说,通知可能存在很多故障点。您的目标是找出问题所在。下图是FCM首页的图:

潜在的故障点:

  1. 当应用向您的服务器发送注册 token 时。
  2. 处理 FCM 注册 token 的更新。

    • 如果发送注册 token 时出错,那么您可以自定义非致命异常发送到 Crashlytics。既然你已经似乎有 token 我不认为这是问题。然而在 some cases token 可能会改变,所以只需仔细检查一下您正在实现 onNewToken() 并发送新注册 token 到服务器以防其发生变化。
  3. 从您的服务器向 FCM 发送通知时。

  4. 将其从 FCM 发送到用户设备时。

    • 确认发送通知时是否没有问题您的服务器 -> FCM -> 用户设备,您可以尝试送货来自 FCM 的收据,如下所述:Receive deliveryreceipts 。它说:

      For Android and Chrome client apps, you can get delivery receipts (sent from FCM to your app server) when a device confirms that it received a message sent by FCM.

      To enable this feature, the message your app server sends to FCM must include the field delivery_receipt_requested. When this field is set to true, FCM sends a delivery receipt when a device confirms that it received a particular message.

    • 此外,在有 GCM 的日子里,我有时会看到用户网络上的防火墙出现问题。可能存在防火墙阻止通知的问题。 IP range of google GCM push notification server?如果是这种情况,请尝试打开潜在的端口列表,或者尝试在运营商数据网络上进行测试。既然您提到您必须在应用程序的各个点包含日志,但它永远不会到达。研究以上几点可以作为下一步的步骤。

  5. 在应用内处理通知/在通知抽屉中显示通知。

希望这对调试您的问题有所帮助。

关于android - 如何诊断 GCM 结果为 'Success' 但未到达设备的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52741446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com