gpt4 book ai didi

javascript - 错误 "snapshot.val"不是 Google Cloud Functions 中的函数

转载 作者:太空狗 更新时间:2023-10-30 01:59:08 26 4
gpt4 key购买 nike

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

“ins”节点是我将新数据推送到的节点:

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 it to clone the same data here:
1525104151100: true,
1525104151183: true,
}
}
}

我的功能代码如下,但它根本不起作用。当我使用 onCreate 触发器(这就是我所需要的)时,我什至无法启动该功能。关于如何使这项工作有任何想法吗?

exports.updateRoom = functions.database.ref('doors/{MACaddress}/ins')
.onCreate((snapshot, context) => {
const timestamp = snapshot.val();
const roomPushKey = functions.database.ref('doors/{MACaddress}/inRoom');
console.log(roomPushKey);
return snapshot.ref.parent.parent.child('rooms').child(roomPushKey).child('ins').set(timestamp);
});

注意:我修改了代码,通过将触发器更改为 onWrite 使其运行,但像这样我收到一条错误消息:“snapshot.val”不是一个功能 ...

exports.updateRoom = functions.database.ref('doors/{MACaddress}/ins').onWrite((snapshot, context) => {     
const timestamp = snapshot.val();
const roomPushKey = functions.database.ref('doors/{MACaddress}/inRoom');
console.log(roomPushKey);
return snapshot.ref.parent.parent.child('rooms').child(roomPushKey).child('ins').set(timestamp);
});

最佳答案

如果您使用onWrite,您必须执行以下操作:

exports.dbWrite = functions.database.ref('/path').onWrite((change, context) => {
const beforeData = change.before.val(); // data before the write
const afterData = change.after.val(); // data after the write
});

onWrite 在指定路径发生任何更改时使用,因此您可以检索更改的之前之后的更改。

更多信息在这里:

https://firebase.google.com/docs/functions/beta-v1-diff#realtime-database

https://firebase.google.com/docs/reference/functions/functions.Change

onCreate 中,您可以这样做:

exports.dbCreate = functions.database.ref('/path').onCreate((snap, context) => {
const createdData = snap.val(); // data that was created
});

因为 onCreate 在您向数据库添加新数据时触发。

关于javascript - 错误 "snapshot.val"不是 Google Cloud Functions 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50118605/

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