当前位置: 首页 > 知识库问答 >
问题:

Firebase云消息传递未发送数据有效负载

东门奕
2023-03-14

在定义消息有效负载时的Firebase云消息文档中:

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

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

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
    }
}

我做错了什么?

共有1个答案

纪秋月
2023-03-14

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

>

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

    当在前台时,你的应用程序会收到一个消息对象,其中两个有效负载都可用。

    因此,基本上,如果应用程序在前台,意图将不会有任何额外的通知。如果不是这样的话,那么您在配置中做了一些错误的事情。

  •  类似资料:
    • 我想使用Firebase云消息服务向所有使用该应用的用户发送一些消息。我可以使用向单个或多个设备发送数据负载,如下所示: 但是如何向所有用户发送数据有效负载?

    • 我正在尝试为Web设置Firebase云消息传递。我成功地对其进行了正确初始化并获得了令牌: manifest.json与gcm_sender_id 我可以看到我在控制台中得到令牌,所以我试图验证它,并通过邮递员发送我的第一个通知-这里是留档。 发布网址:https://fcm.googleapis.com/v1/projects/PROJECTID/messages:发送授权:无授权 标题 Bo

    • 在我们的项目中,我们使用Firebase云消息传递来进行推送通知,我们遇到了消息重复的问题。我们过程如下所示: xamarin.firebase.ios.CloudMessaging 3.1.2 xamarin.firebase.ios.instanceID 3.2.1 xamarin.firebase.ios.core 5.1.3 订阅用户主题推荐 发送主题订阅者请求的通知 null 但是,当用

    • FCM服务未向我的iOS应用程序发送消息。 > App CAN成功接收APNs令牌和实例ID令牌 App CAN使用推送通知实用程序利用. p8令牌在后台成功接收来自APN的推送 #2中使用的相同APNs密钥上传到Firebase控制台 应用程序无法接收Firebase控制台中Notification Composer发送的消息,也无法使用CURL请求接收消息。 应用程序在通过FCM发送时不显示任

    • 我在向iOS设备发送密钥数据有效负载时遇到问题 这是我要送https://fcm.googleapis.com/fcm/send POST请求中的标题: 键orderState的问题,在客户端我得到这个键作为一个字符串 orderStatus=“{\'id\':5102,\'status\':1}”; 我可以告诉Firebase将此密钥作为对象发送吗? 或者数据中的所有键都必须是简单键=值键? 我

    • null 当我确实从Firebase云消息发送给自己一条测试消息时,它确实工作正常,并且成功地向每个设备发送了一个推送通知。 例如,以下是 null