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

Node.js Firebase将通知标题和正文设置为数据库值,node.js,firebase,push-notification,firebase-cloud-messaging,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

我认为这是一个相当基本的问题,但我有一个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;
    });
});

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

event.val().question
event.val().bestAnswer
使用这些工具,您可以更新通知:

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


仅供参考,您使用的是旧版本的firebase functions SDK。您应该使用1.x而不是0.x。API已经改变了。谢谢你让我知道。我肯定会看一看并更新,但你知道我如何用我目前拥有的东西做到这一点吗?
const payload = {
        notification: {
            title: event.val().question,
            body: event.val().bestAnswer,
            badge: '1',
            sound: 'default',
        }