Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在云函数中传递动态引用?_Node.js_Firebase_Firebase Cloud Messaging_Google Cloud Functions - Fatal编程技术网

Node.js 如何在云函数中传递动态引用?

Node.js 如何在云函数中传递动态引用?,node.js,firebase,firebase-cloud-messaging,google-cloud-functions,Node.js,Firebase,Firebase Cloud Messaging,Google Cloud Functions,我想使用云功能为特定用户发送推送通知 这是我的密码: const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); exports.sendPushNotification = functions.database.ref('/Users/{id}').onWrite(event

我想使用云功能为特定用户发送推送通知

这是我的密码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendPushNotification = functions.database.ref('/Users/{id}').onWrite(event => {
const payload = {
    notification: {
        title: 'Test message',
        body: 'Hope you are fine',
        badge: '1',
        sound: 'default',
    }
};

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

        });
    }
});
});
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendPushNotification = functions.database.ref('/Users/{id}').onWrite(event => {

var eventSnapshot = event.data;
    var particularUser = eventSnapshot.child('City');
    if (particularUser.changed()) {
      const payload = {
              notification: {
                  title: 'Test message',
                  body: 'Hope you are fine',
                  badge: '1',
                  sound: 'default',
              }
          };

          var getToken = eventSnapshot.child('fcmToken');

                  const token = Object.keys(getToken.val());
                  return admin.messaging().sendToDevice(token, payload).then(response => {

                  });

    }


});
但是,如何动态地执行,也就是说,我想为特定用户发送推送通知,这段代码将通知发送给所有注册的用户。因此,请帮助我将静态id(db引用)更改为动态id(db引用),以及如何在此代码行中传递不同的通知内容:

const payload = {
    notification: {
        title: 'Test message',
        body: 'Hope you are fine',
        badge: '1',
        sound: 'default',
    }
};

有人在这方面指导我吗?

我是动态实现的。希望它能帮助别人

这是我的密码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendPushNotification = functions.database.ref('/Users/{id}').onWrite(event => {
const payload = {
    notification: {
        title: 'Test message',
        body: 'Hope you are fine',
        badge: '1',
        sound: 'default',
    }
};

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

        });
    }
});
});
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendPushNotification = functions.database.ref('/Users/{id}').onWrite(event => {

var eventSnapshot = event.data;
    var particularUser = eventSnapshot.child('City');
    if (particularUser.changed()) {
      const payload = {
              notification: {
                  title: 'Test message',
                  body: 'Hope you are fine',
                  badge: '1',
                  sound: 'default',
              }
          };

          var getToken = eventSnapshot.child('fcmToken');

                  const token = Object.keys(getToken.val());
                  return admin.messaging().sendToDevice(token, payload).then(response => {

                  });

    }


});
若要更改通知内容,可以在从应用程序端更新后从数据库中获取