gpt4 book ai didi

javascript - 如何将 Firebase 中的节点(对象)复制到另一个节点?

转载 作者:行者123 更新时间:2023-11-28 05:30:20 26 4
gpt4 key购买 nike

我在 Firebase 中有一个名为“Events”的节点。它由子对象组成,例如:地址描述经度纬度。在用户删除事件节点之前,我想将其复制到同一数据库中名为 eventsDeleted 的节点。

这是删除节点的代码:

removeEvent(eventId, groupId) {

return new Promise((resolve, reject)=> {

this.eventRef.child(groupId).child(eventId).remove();
resolve();

});

}

这是创建节点的代码:

addEvent(data:any) {
console.log('Form data', data.group);

let localEventRef = firebase.database().ref('events').child(data.group.split(',')[1]);
let storageRef = firebase.storage().ref();
let file = data.image;
let uploadTask = storageRef.child('eventImages/' + UuidGenerator.generateUUID()).put(file);
uploadTask.on('state_changed', function (snapshot) {

}, function (error) {
// Handle unsuccessful uploads
console.error(error);
}, function () {
// Handle successful uploads on complete
let downloadURL = uploadTask.snapshot.downloadURL;
let keyOfNewEvent = localEventRef.push(
new Event(
null,
firebase.app().auth().currentUser.uid,

data.description,


data.location.address,
0

)
).key;
localEventRef.child(keyOfNewEvent).update({eventId: keyOfNewEvent});
});


}

不用介意上传图像的代码。我只需要一种方法来复制整个节点(如果可能),然后将其粘贴到数据库中的某个位置。提前致谢。

最佳答案

当用户单击删除时,请确保获取正在删除的对象,如果您要在数据库中查询该对象,您可以使用 .once 来检索该对象,否则您可以直接跳转到removeEvent函数。

localEventRef.child(keyOfEvent).once("value", function(snapshot) {
//one data is returned, you can then call the removeEvent fn

let eventToBeRemoved = snapshot.val();
//assuming you have the eventid, groupid then.
removeEvent(eventId, groupId, eventToBeRemoved);
});

removeEvent(eventId, groupId, eventObjectToBeRemoved) {
//firebase 3.x comes with a promise method

firebase.database().ref('eventsDeleted/' + groupId + '/' + eventId )
.set({...eventObjectToBeRemoved})
.then(function () {
eventRef.child(groupId).child(eventId).remove();//you can now remove
})
.catch(function (error) {
console.error("error occured trying to add to deletedEvents", error);
});
});
}

关于javascript - 如何将 Firebase 中的节点(对象)复制到另一个节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39745858/

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