我正在使用Firebase开发应用,我正确实施了推送通知。而现在我正在尝试展示徽章图标,但我找不到一个好的信息来做到这一点。我读过我应该在服务器端工作,示例代码是这样的。
"aps" :
{
"alert" : "Your notification message",
"badge" : badgecount ,
"sound" : "bingbong.aiff"
}
但我不知道在我的函数中添加代码的位置。
这就是我的功能:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.pushNotifications = functions.database.ref('/messages/{messageId}')
.onCreate(event => {
const data = event.data;
const fromId = data.fromId;
const toId = data.toId;
const message = data.message;
console.log(fromId + ' sent a message to' + toId);
return admin.database().ref('/users/' + fromId).once('value', snapshot => {
var user = snapshot.val();
var payload = {
notification: {
title: user.username,
body: message
}
}
admin.messaging().sendToDevice(user.fcmToken, payload)
.then(function(response) {
// See the MessagingDevicesResponse reference documentation for
// the contents of response.
console.log("Successfully sent message:", response);
})
.catch(function(error) {
console.log("Error sending message:", error);
});
})
有人可以给我一些建议吗?
答案 0 :(得分:1)
“apns”对象作为通知的兄弟对象进入有效负载对象:
var payload = {
notification: {
title: user.username,
body: message
},
apns: {
// badge and other ios only data here here
}
}
我还建议返回admin.messaging()方法:return admin.messagins().sendToDevice().ect
。它可能不是必需的,但Firebase建议返回所有可用的引用。