// 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}')
?
答案 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
时,你会得到那个孩子的钥匙。