【问题标题】:FCM sends max 49 push notification at a time to an android device but sends a delivery receipt of all the messagesFCM 一次最多向 android 设备发送 49 个推送通知,但会发送所有消息的送达回执
【发布时间】:2017-08-30 17:46:32
【问题描述】:

我正在尝试为我的新聊天应用程序实现推送通知服务。为了 POC,我让我的设备在 FCM 上注册了一个演示应用程序,并在 FCM 上为我的应用程序创建了一个帐户。这样,我就完成了所有的手续。我正在使用来自 google 的基于 XMPP 协议的实现。

现在,当我尝试一次将推送超过 50 次(使用 for 循环)发送到我的 android 设备时。 FCM 向我发送所有推送通知的收据(例如,如果我有时发送 60 条推送,那么它会向我发送 60 条推送的收据),但在我的手机上我只收到 49 条推送通知。

我尝试了多种方式,例如在间隔一秒后发送每个 PUSH,但仍然收到 49 条消息。

谁能建议我该怎么做才能纠正它。我想在我的设备上查看所有推送通知。我浏览了各种链接,但找不到任何帮助。

我从服务器发送的数据包

{
"delivery_receipt_requested":true,
"notification":{
"title":"XXX",
"body":"Message 111...0"
},
"data":{
"message":"This is the simple sample message"
},
"time_to_live":2000,
"message_id":"m-0-f21bb45d-213c-4306-b773-1f7f71d1494b",
"to":"SOME VALID DEVICE TOKEN"
}

如果我遗漏了什么,请有人建议。

提前致谢。

【问题讨论】:

  • 您是否为每条消息设置了唯一的message_idServer ref 表示它是必需的,尽管这与 Cloud Messaging Guide 不一致,后者指出:FCM 添加字段 message_id,这是必需的。此 ID 唯一标识 XMPP 连接中的消息
  • 是的,消息id是唯一的。
  • 谢谢..我会看看它....这可能是原因。

标签: java android firebase notifications firebase-cloud-messaging


【解决方案1】:

Android 上的每个应用都有显示通知的最大数量限制。

因此,在您的情况下,您可以收到推送通知的所有送达收据,这意味着设备接收它们没有问题。

主要问题是设备无法显示超出限制的通知,例如 50 条通知。

任何超出限制的通知都不会显示在通知区域。

参考: android system notification limit per app

【讨论】:

    【解决方案2】:

    我在我的手机上做了一个小实验,开发了一个小应用程序和一个工具,它使用 FCM 每 2 秒向我的应用程序发送推送通知。应用程序将在前台,当我点击我的应用程序中的设置时,它会显示我的 Android 应用收到的通知计数。

    我发送了大约 1000 次推送,发现在我的手机上收到了大约 658 次。因此,这可以确保我的手机确实收到了超过 49 次推送,并且 FCM 对于推送通知不是 100% 可靠的。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      相关资源
      最近更新 更多