Firebase 云消息传递不发送数据负载



摘自 Firebase Cloud 消息传递文档中的 定义消息负载:

您可以通过创建对象来指定一种或两种消息类型数据和/或通知键。

该文档给出了组合消息的示例:

var payload = {
notification: {
title: "$GOOG up 1.43% on the day",
body: "$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day."
},
data: {
stock: "GOOG",
open: 829.62,
close: "635.67"
}
};

同样来自在后台应用中处理通知消息中的文档:

这包括同时包含通知和数据有效负载的消息 (以及从通知控制台发送的所有消息(。在这些 在这种情况下,通知将传递到设备的系统托盘,并且 数据有效负载以您的意图的额外方式提供 启动器活动。

我正在发送包含此有效负载的通知:

const payload = {
notification: {
title: '...',
body: '...',
},
data: {
test: "test"
},
};
admin.messaging().sendToDevice(tokens, payload).then(...)

extras始终为空:

Intent intent = getIntent();
if (intent != null) {
Bundle extras = intent.getExtras();
if (extras != null) {
// do something
}
}

我做错了什么?

接收同时包含通知和数据有效负载的消息时,应用行为取决于应用是在后台还是前台,本质上是接收时应用是否处于活动状态。

在后台时,应用会在通知
  • 托盘中接收通知有效负载,并且仅在用户点击通知时处理数据有效负载。

  • 在前台时,应用会收到一个消息对象,其中包含两个有效负载。

因此,基本上,如果应用程序处于前台,则意图不会有任何通知附加功能。 如果不是这种情况,那么您在配置中做错了什么。

相关内容

  • 没有找到相关文章

最新更新