【发布时间】:2017-02-15 02:09:58
【问题描述】:
如何通过引用条目以找到所需的删除点,从 Firebase 数据库中删除整个嵌套子项?
例如,我在 (list) 下嵌套了两个条目。 (1) -KcxacywN4EkvwAzugfV 和 (2) -KcxaeBAIW-WgLAsajvV。我想使用它的 ID -KcxaeBAIW-WgLAsajvU-4-725391765511696 从数据库中删除 (2) -KcxaeBAIW-WgLAsajvV(见下图)。
我为每个数据库条目设置了一个按钮,以显示一个删除按钮。每个按钮都包含每个数据库条目的 data- 或 ID。
rootRef.on("child_added", snap => {
var title = snap.child("title").val();
var link = snap.child("link").val();
var type = snap.child("type").val();
var id = snap.child("id").val();
$("#table_data").append("<div class='col-lg-4'><div class='card card-app'><div class='card-block'><h4 class='card-title'>"+ title +"</h4><small>"+ type +"</small><hr><a href='"+ link +"' target='_blank'>Download</a> <a class='user float-right' onclick='removeClick()' data-name='"+ id +"'>Remove</a> </div></div></div>");
});
按钮的onClick事件和关联的id,触发这个函数。我的想法是,然后从 data- 中获取 ID 以删除其嵌套的孩子,(2)-KcxaeBAIW-WgLAsajvV 从数据库中。所有其他嵌套条目的过程相同。
function removeClick() {
$(".user").click(function() {
rvm = $(this).attr("data-name");
});
alert(rvm);
firebaseRef.remove(rvm);
}
我研究了https://firebase.google.com/docs/database/web/read-and-write,似乎无法弄清楚嵌套条目的实际删除。如何使用 remove() 或其他方法来完成此操作?
我一直在尝试这个,以获得更好的理解。
firebaseRef.child(rvm).remove();
因为 rootRef,我是如何查看数据的。我试过了。
rootRef.child().remove();
这只是删除了整个数据库...
最终运行代码:
function removeClick() {
$(".user").click(function() {
rvm = $(this).attr("data-name");
});
alert(rvm);
var query = rootRef.orderByChild("id").equalTo(rvm);
query.once("value", function(snapshot) {
snapshot.forEach(function(itemSnapshot) {
itemSnapshot.ref.remove();
});
});
}
【问题讨论】:
标签: javascript firebase firebase-realtime-database