gpt4 book ai didi

javascript - 如何从另一个 Node 事件触发的 `onWrite` 函数中到达 Google Cloud Function 中的特定 Node ?

转载 作者:行者123 更新时间:2023-11-30 14:38:00 26 4
gpt4 key购买 nike

创建新 Node 时,我想创建相同的数据并将其推送到不同的 Node 。

Door/111111111111/ins Node 是我将新数据推送到的 Node :

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 is not a function

代码:

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);
});

我的路径有什么问题?我怎样才能让它更新另一个 Node ?

最佳答案

child()Reference 上的一个方法返回另一个 Reference 对象。 Reference 没有 val() 方法,因为它不包含任何数据。这只是一个引用。

要获取数据库触发器位置之外的数据,您需要查询实时数据库。使用 once()方法。这是非常常见的,您应该能够使用示例和文档来确定您需要做什么。

关于javascript - 如何从另一个 Node 事件触发的 `onWrite` 函数中到达 Google Cloud Function 中的特定 Node ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50120415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com