Firebase云消息传递在安卓设备上只显示最后一条通知

4

我正在使用FCM通过HTTP协议向Android设备发送数据推送通知。如果我发送多个通知,手机会响起相应次数,但我只能在通知托盘中看到最后一个已发送的通知。我没有使用collapse_key,因此它们应该单独显示。这是有效载荷:

{  
   "data":{  
      "testId":"3",
      "test2Id":"2",
      "title":"Test Alert Title 1",
      "body":"Test Alert Body 1"
   },
   "to":"DEVICE_REG_ID_XXXX"
}

更新: 在设备端,我们在Cordova应用中使用phonegap-cordova-push插件 (https://github.com/phonegap/phonegap-plugin-push/tree/v1.9.x)。

我做错了什么?


如果您只发送“数据”而不是“通知”数据,则我认为它不会关心折叠键。您的应用程序会手动处理所有内容。 - Tim
当您收到FCM时,您是如何创建通知的?您使用不同的通知ID还是相同的? - baldguy
我们在 Cordova 应用中使用 phonegap-cordova-push 插件(https://github.com/phonegap/phonegap-plugin-push/tree/v1.9.x)。 - Mensur
1个回答

6
我们已经找到了问题所在,因此我为那些可能遇到相同问题的人发布帖子。问题出在相关插件上。查看插件代码后,我们确定该插件要求数据负载中包含属性notId以将每个通知标记为唯一的,否则它们会被折叠,并且只有最新的通知会显示在通知托盘中。因此,数据负载应该像这样:
{  
   "data":{  
      "testId":"3",
      "test2Id":"2",
      "title":"Test Alert Title 1",
      "body":"Test Alert Body 1"
      "notId":"45"
   },
   "to":"DEVICE_REG_ID_XXXX"
}

发送方需要确保每个FCM请求都具有唯一的notId属性。

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