chat app FCM如何为Android / iOS平台编写有效负载

时间:2018-05-20 14:19:44

标签: firebase firebase-cloud-messaging firebase-admin

我正在使用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;
});

1 个答案:

答案 0 :(得分:1)

  

其在所有Android设备和iPhone SE上的完美工作,其他iPhone设备(如iPhone 6S,7,8,X)等没有弹出通知或提醒

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

  

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

最好包含您已检查过的链接/解决方案,以便社区下次更好地为您提供帮助。

总而言之,起初我打算建议FCM v1's Platform Overrides,但发现你正在使用(如果我错了,请纠正我)Firebase管理员(或可能是云功能)。

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

  

顶级消息参数

     

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

     

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

     

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