使用 Cloud Functions 的 iOS 后台通知
Posted
技术标签:
【中文标题】使用 Cloud Functions 的 iOS 后台通知【英文标题】:iOS background notifications using Cloud Functions 【发布时间】:2018-08-29 13:29:23 【问题描述】:当应用程序进入后台时,我在获取数据时遇到问题。我正在使用 Firebase Cloud 功能,我认为我在 NodeJS 中没有正确编码。我尝试了许多示例和解决方案,例如:
content_available: true
和 priority: '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);
);
【问题讨论】:
不确定是否相关,但正确的字段名称是contentAvailable
和mutableContent
:firebase.google.com/docs/reference/admin/node/…
@HiranyaJayathilaka 实际上你是对的,解决了这个问题。非常感谢。发表一个答案,我会将其标记为正确的。
【参考方案1】:
Node.js SDK 的正确字段名称应为 contentAvailable
和 mutableContent
:https://firebase.google.com/docs/reference/admin/node/admin.messaging.Aps
【讨论】:
感谢您的支持。以上是关于使用 Cloud Functions 的 iOS 后台通知的主要内容,如果未能解决你的问题,请参考以下文章
正确使用 Firebase Cloud Functions 和 Stripe
使用服务器到服务器通知和 Firebase Cloud Functions 对 iOS 和 Android 自动更新订阅进行服务器端验证
在 HTTPS 可调用的 Firebase Cloud Functions 中,错误代码的名称是不是在 iOS 中可用?