使用云功能的iOS后台通知

使用云功能的iOS后台通知,ios,node.js,push-notification,firebase-cloud-messaging,firebase-admin,Ios,Node.js,Push Notification,Firebase Cloud Messaging,Firebase Admin,当应用程序进入后台时,我在获取数据时遇到问题。我使用的是Firebase云函数,我认为我在NodeJS中没有正确编码。我尝试过许多例子和解决方案,如: 可用内容:正确且优先:“高”,但似乎没有任何效果。我必须指出: 通知到达后台和前台,但我可以从前台的通知中读取数据,但数据不是在后台提取的。因此,即使以声音和警报显示,后台也没有通知数据 我认为我在数据有效负载方面做错了什么,所以下面是我的NodeJS方法: var message = { token: tokenID, notification

当应用程序进入后台时,我在获取数据时遇到问题。我使用的是Firebase云函数,我认为我在NodeJS中没有正确编码。我尝试过许多例子和解决方案,如: 可用内容:正确且优先:“高”,但似乎没有任何效果。我必须指出:

通知到达后台和前台,但我可以从前台的通知中读取数据,但数据不是在后台提取的。因此,即使以声音和警报显示,后台也没有通知数据

我认为我在数据有效负载方面做错了什么,所以下面是我的NodeJS方法:

var message = {
token: tokenID,
notification: {
title: 'ChatApplication',
body: `${myUsername} send you a message`,

},
android: {
ttl: 3600 * 1000,
notification: {
  icon: 'default',
  sound: 'default',
  click_action: "com.yupi.chatapplication.messaging"
},
data: {
  from_user: user_id,
  title: 'ChatApplication',
  body: `${myUsername} send you a message`
   },
 },
 apns: {
payload: {
  aps: {
    alert: {
      title: 'ChatApplication',
      body: `${myUsername} send you a message`
    },
  badge: 1,
  sound: 'default',
  content_available: true,
  mutable_content: true,
  priority: 'high'
     },
    },
  },
};

return admin.messaging().send(message)
.then((response) => {
  // Response is a message ID string.
return console.log('Successfully sent message:', response);
})
 .catch((error) => {
 return console.log('Error sending message:', error);
 });

Node.js SDK的正确字段名应该是contentAvailable和mutableContent:

不确定是否相关,但正确的字段名是contentAvailable和mutableContent:@HiranyaJayathilaka事实上解决问题的方法是正确的。非常感谢。发布一个答案,我会把它标记为正确答案。谢谢大家竖起大拇指。