Javascript 如何从由另一个节点事件触发的“onWrite”函数中访问Google云函数中的特定节点?
创建新节点时,我希望创建相同的数据并将其推送到不同的节点中 Door/111111/ins节点是我将新数据推送到的节点:Javascript 如何从由另一个节点事件触发的“onWrite”函数中访问Google云函数中的特定节点?,javascript,node.js,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Node.js,Firebase,Firebase Realtime Database,Google Cloud Functions,创建新节点时,我希望创建相同的数据并将其推送到不同的节点中 Door/111111/ins节点是我将新数据推送到的节点: root: { doors: { 111111111111: { MACaddress: "111111111111", inRoom: "-LBMH_8KHf_N9CvLqhzU", ins: { // I am creating several "key: pair"s here, somethi
root: {
doors: {
111111111111: {
MACaddress: "111111111111",
inRoom: "-LBMH_8KHf_N9CvLqhzU",
ins: {
// I am creating several "key: pair"s here, something like:
1525104151100: true,
1525104151183: true,
}
}
},
rooms: {
-LBMH_8KHf_N9CvLqhzU: {
ins: {
// I want the function to clone the same data here:
1525104151100: true,
1525104151183: true,
}
}
}
这是我的函数,它抛出了一个错误:
TypeError:change.before.ref.parent.child(…).val不是函数
代码:
我的路怎么了?如何让它更新另一个节点?是一个返回另一个引用对象的方法。引用没有val()方法,因为它不包含任何数据。这只是一个参考
要获取数据库触发器位置之外的数据,需要查询实时数据库以获取数据。使用这种方法。这是非常常见的情况,您应该能够使用示例和文档来确定需要执行的操作。
错误:Reference.child失败:第一个参数是无效的path=“undefined”。路径必须是非空字符串,并且不能包含“.”、“$”、“[”或“]”
谢谢。我希望如此普通的东西会有一两个样本,我也曾寻找过类似的样本。不幸的是我找不到。你能给我指出一个这样做的方法吗(在不同的位置克隆节点)?非常感谢。注意:我去掉了ref…..val()错误,但仍然遇到了麻烦:错误:Reference.child失败:第一个参数是无效路径=”https://clipclop020.firebaseio.com/doors/111111111111/inRoom". 路径必须是非空字符串,并且不能包含“.”、“$”、“[”、或“]”
我觉得路径非常好:/这听起来是一个不同的问题,需要不同的问题来解释您所做的事情。好的。将创建一个新问题。谢谢。这是新问题:
exports.updateRoom = functions.database.ref('/doors/{MACaddress}/ins').onWrite((change, context) => {
const beforeData = change.before.val(); // data before the write
console.log(beforeData); // all good so far
const afterData = change.after.val(); // data after the write
console.log(afterData); // all good so far
const roomPushKey = change.before.ref.parent.child('/inRoom').val(); // ERROR
console.log(roomPushKey);
return change.after.ref.parent.parent.parent.child('/rooms').child(roomPushKey).child('/ins').set(afterData);
});