cloud Functions和Nodejs中的firebase.database.ref路径语法

时间:2017-06-08 18:34:41

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

// cloud functions
exports.listenOnWrite = functions.database.ref('/foo/{id}').onWrite(event => {
    console.log("did match....");
})

匹配例如:/ foo / 123123和/ foo / jk3489

// node.js
function startLitener() {
  firebase.database().ref("/foo/{id}").on('child_added', function (postSnapshot) {
    console.log("did match....");
  });
};

与任何内容都不匹配

1)问题

我理解ref路径中非常舒适的{}语法仅适用于云函数。 或者我错过了什么?

2)问题

我如何在nodejs服务器上制定ref('/foo/{id}')

1 个答案:

答案 0 :(得分:2)

在您的Cloud功能声明中,您使用了Cloud Functions for Firebase库的语法。这是解释路径中{}语法的模块。

Node.js程序中的代码使用的是Firebase Admin SDK。所以那里的路径由不同的模块解释,不幸的是使用不同的语法:

firebase.database().ref("/foo/").on('child_added', function (postSnapshot) {
  var id = postSnapshot.key;
});

由于您正在侦听child_added事件,因此您的代码将使用新子项的快照执行。当你打电话给snapshot.key时,你会得到那个孩子的钥匙。