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

标签 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 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 => {

        });
    }
});
});

但是,如何动态地执行此操作,即我想为特定用户发送推送通知,此代码将通知发送给所有注册的用户。因此,帮助我将静态 id(数据库引用)更改为动态(数据库引用)以及如何在此代码行中传递不同的通知内容:

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 => {

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 => {

                  });

    }


});

如果要更改通知内容,您可以在应用程序端更新后从数据库中获取它。

关于node.js - 如何在云函数中传递动态引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47881283/

相关文章:

node.js - 将文件从一个 Node js服务器发送到另一个

javascript - 上传大文件并对其进行解析时出现 fatal error Node.js v10.15.1

android - Firestore Core初始化错误,没有任何作用

ios - 如何使用 FIRebase 将带有对象的字典追加到数组中

Android:Firebase - 多个发件人将通知推送到特定设备

mysql - 从 Sequelize 中的其他表查找计数

node.js - 在 MongoDB 模式中自动增加前导 0 的字段

javascript - 从文档引用数组中获取 firestore 文档

java - 致命异常 : Firebase-Messaging-Intent-Handle — com. google.android.youtube — lang.NoClassDefFoundError: aewt

android - Firebase 云消息传递 - 如何验证 token ?