Firebase会增加iOS的徽章数量

时间:2018-04-20 04:53:45

标签: firebase firebase-realtime-database

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

            })

有人可以给我一些建议吗?

1 个答案:

答案 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建议返回所有可用的引用。