火力地堡删除()在数据库
问题描述:
整个嵌套数组怎样才能通过引用的条目,从而找到缺失的所需点删除一个火力地堡数据库整个嵌套的孩子?火力地堡删除()在数据库
例如,我有下(列表)嵌套两个条目。 ()-KcxacywN4EkvwAzugfV
和(2 )-KcxaeBAIW-WgLAsajvV
。我想从数据库中删除()-KcxaeBAIW-WgLAsajvV
使用它的ID-KcxaeBAIW-WgLAsajvU-4-725391765511696
(见下图)。
我对每个数据库条目的按钮设置,以显示删除按钮。每个按钮包含每个数据库条目的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触发此函数。我的心理想法,就是再取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();
});
});
}
答
,如果你知道它的键只能删除项目。因此,鉴于您目前的结构,您首先需要查找您提到的身份证的关键字。
假设你有一个变量ref
指向数据库的根:
var listRef = ref.child("list");
var query = listRef.orderByChild("id").equalTo("-KcxaeBAIW-WgLAsajvU-4-725391765511696");
query.once("value", function(snapshot) {
snapshot.forEach(function(itemSnapshot) {
itemSnapshot.ref.remove();
});
});
如果你只有一个孩子的ID,你应该考虑重组数据库中使用的ID作为关键。如果你这样做,你可以删除项目:
listRef.child("-KcxaeBAIW-WgLAsajvU-4-725391765511696").remove()
这工作!谢谢。我现在看到,你必须以某种方式等同于参考。我发布了这个问题,工作代码。 – rniller