我正在使用 Firebase 多位置更新来更新数据库中的多个位置。
其中一个更新路径包含一个可以在更新过程中更改的值,因此在正确的新路径位置创建新记录。然后,这会在原始位置留下冗余数据,我需要在更新过程中将其删除。有人可以指导我如何在更新过程中删除冗余数据吗?
我使用下面的代码来创建我的更新:-
var updatedUserDataContent = {
title: $scope.postToUpdate.title
commenter: $scope.postToUpdate.commenter
};
updatedUserData["Posts/" + $scope.postToUpdate.$id] = updatedUserDataContent;
updatedUserData["UserPosts/" + $scope.postToUpdate.commenter + "/" + $scope.postToUpdate.$id] = updatedUserDataContent;
用户可以在保存之前更改记录上的commenter
,从而将冗余数据保留在原始commenter
节点中。我尝试过使用安全规则,但这些规则会阻止创建而不是删除数据。
编辑 1
按照请求的 JSON。 更新之前我有
{
"Not assigned" : {
"-KNfs3OhBmbb93w9VEW-" : {
"title": "vytg",
"commenter": "Not assigned"
}
}
}
更新后(将commenter
从“未分配”更改为“用户A”后)我有
{
"Not assigned": {
"-KNfs3OhBmbb93w9VEW-": {
"title": "vytg",
"commenter": "Not assigned"
}
},
"User A" : {
"-KNfs3OhBmbb93w9VEW-" : {
"title": "vytg",
"commenter": "User A"
}
}
}
但我想要
{
"User A" : {
"-KNfs3OhBmbb93w9VEW-" : {
"title": "vytg",
"commenter": "User A"
}
}
}
最佳答案
您正在尝试移动/重命名节点,这不是数据库支持的操作。
由于新数据已正确写入,因此您只需清除旧节点即可。将 null
放入该位置即可解决此问题:
updatedUserData["Not assigned"] = null;
关于javascript - Firebase 多位置更新,删除冗余数据作为更新的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38611158/