使用 Cloud Functions 的 iOS 后台通知

Posted

技术标签:

【中文标题】使用 Cloud Functions 的 iOS 后台通知【英文标题】:iOS background notifications using Cloud Functions 【发布时间】:2018-08-29 13:29:23 【问题描述】:

当应用程序进入后台时,我在获取数据时遇到问题。我正在使用 Firebase Cloud 功能,我认为我在 NodeJS 中没有正确编码。我尝试了许多示例和解决方案,例如: content_available: truepriority: 'high' 但似乎没有任何效果。我必须注意:

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

我认为我在数据负载中做错了,所以这是我的 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);
 );

【问题讨论】:

不确定是否相关,但正确的字段名称是contentAvailablemutableContent:firebase.google.com/docs/reference/admin/node/… @HiranyaJayathilaka 实际上你是对的,解决了这个问题。非常感谢。发表一个答案,我会将其标记为正确的。 【参考方案1】:

Node.js SDK 的正确字段名称应为 contentAvailablemutableContent:https://firebase.google.com/docs/reference/admin/node/admin.messaging.Aps

【讨论】:

感谢您的支持。

以上是关于使用 Cloud Functions 的 iOS 后台通知的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cloud Functions 的 iOS 后台通知

Google Cloud Functions 通知 iOS

正确使用 Firebase Cloud Functions 和 Stripe

使用服务器到服务器通知和 Firebase Cloud Functions 对 iOS 和 Android 自动更新订阅进行服务器端验证

在 HTTPS 可调用的 Firebase Cloud Functions 中,错误代码的名称是不是在 iOS 中可用?

具有 Cloud Functions for Firebase 的自定义观察者