Cloud Functions和Nodejs中的firebase.database.refpath语法

// 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)问题

我理解refpath中非常舒适的{}语法仅适用于云function。 还是我错过了什么?

2)问题

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

在您的云端函数声明中,您正在使用Firebase库云端函数的语法。 这是解释path中的语法的模块。

您的Node.js程序中的代码正在使用Firebase Admin SDK。 所以这些path被不同的模块解释,不幸的是使用了不同的语法:

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

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