首页 > 解决方案 > 聊天应用 FCM 如何为 Android/iOS 平台编写有效负载

问题描述

我正在使用 FCM 通过以下应用代码在设备之间发送消息,它在所有 android 设备和 iPhone SE 上完美运行,其他 iPhone 设备(如 iPhone 6S、7、8、X)等没有弹出通知或警报,是否适用于这两个平台的任何有效负载代码?

我已经搜索了很多不同的解决方案,但仍然无法正常工作,谁能帮助我,谢谢。

}).then(result => {

  const token_id = result.val();
  //const userNameGet = result[1].val();

  const payload = {

    notification: {
      title : "Message",
      body: `${userNameGlobal} has sent you a message`,
      sound: "default",
      priority: "high",
      icon: "default"
    }
  };

  return admin.messaging().sendToDevice(token_id, payload);

}).then(response => {
  console.log('This was the notification feature.');
  return true;
});

标签: firebasefirebase-cloud-messagingfirebase-admin

解决方案


它在所有 android 设备和 iPhone SE 上完美运行,其他 iPhone 设备(如 iPhone 6S、7、8、X)等没有弹出通知或警报

这非常令人困惑。但是根据帖子标题,您想了解更多关于向不同平台发送消息的信息。

我搜索了很多不同的解决方案,但仍然无法正常工作

最好包括您已经检查过的链接/解决方案和结果,以便社区下次更好地帮助您。

尽管如此,起初我打算建议FCM v1 的 Platform Overrides,但注意到您正在使用(如果我错了,请纠正我)Firebase Admin(或可能是 Cloud Functions)。

当使用 Firebase Admin SDK 发送消息时,实际上可以在有效负载中使用参数来指定文档中指定的每个可用平台(Android、iOS 和 Web)唯一的项目:

顶级消息参数

android- 由特定于 Android 消息的字段组成的对象。有关详细信息,请参阅Android 特定字段

apns- 由特定于 Apple 推送通知服务 (APNS) 的字段组成的对象。有关详细信息,请参阅特定于 APNS 的字段

webpush- 由特定于 WebPush 协议的字段组成的对象。有关详细信息,请参阅WebPush 特定字段


推荐阅读