从实时数据库Firebase throw函数获取数据

时间:2019-05-16 10:11:21

标签: node.js firebase firebase-realtime-database google-cloud-functions

我正在构建一个Cloud Functions发送通知,该通知从实时数据库获取用户ID,并使用其令牌将通知发送到特定设备。 我无法从Firebase实时数据库中获取用户ID和令牌的问题

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.sendAdminNotification = 
functions.database.ref('/types/{userId}/token').onWrite((change, context) => {
const userId = context.params.val
const token = change.before.val()
console.log("data",token)

const payload = {
    data: {
         data_type: "direct_message",
         title: "Alert" ,
         message: "your animal is out of the zone please check him",
         message_id: "2",

        }
    };
return admin.messaging().sendToDevice(token, payload)

});

1 个答案:

答案 0 :(得分:0)

您正在尝试从使用以下代码写入的数据的路径中读取用户ID:

functions.database.ref('/types/{userId}/token').onWrite((change, context) => {
  const userId = context.params.val

要从路径中获取参数,您需要使用context.path.theNameOfTheParameter。因此,在您的情况下为context.params.userId