Firebase将通知标题和正文设置为数据库值

时间:2018-06-29 17:38:23

标签: node.js firebase push-notification firebase-cloud-messaging

我认为这是一个非常基本的问题,但是我有一个Firebase函数文件,其中包含index.js文件。当数据库以新值更新时,我能够触发推送通知,但是只需要帮助将通知的标题和正文设置为在子节点中添加的值即可。这是我到目前为止的内容:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);
// database tree
exports.sendPushNotification = functions.database.ref('/questions/{id}').onWrite(event =>{
    const payload = {
        notification: {
            title: //Value at /questions/{id}/question,
            body: //Value at /questions/{id}/bestAnswer,
            badge: '1',
            sound: 'default',
        }

    };
    return admin.database().ref('fcmToken').once('value').then(allToken => {
        if (allToken.val()){
            const token = Object.keys(allToken.val());
            console.log('token? ${token}');
            return admin.messaging().sendToDevice(token, payload).then(response =>{
              return null;
            });
        }

        return null;
    });
});

1 个答案:

答案 0 :(得分:0)

您可以引用创建的对象的任何值:

event.val().question
event.val().bestAnswer

使用这些信息可以更新通知:

payload.notification.title = event.val().question;
payload.notification.body = event.val().bestAnswer;

const payload = {
        notification: {
            title: event.val().question,
            body: event.val().bestAnswer,
            badge: '1',
            sound: 'default',
        }