javascript - 如何使用 Javascript 和 Firebase 从数据库中删除 child_object
问题描述
我在 Firebase-database 上设置了一些对象,并在带有“child_added”的 HTML 表上显示它们,以便在将它们添加到数据库后立即动态添加它们,并且表的每一行都必须有一个删除按钮,但我不知道如何制作一个工作按钮来删除相应的数据库对象。
我正在动态制作一个包含来自 Firebase 的信息的表格。数据库。我想在我的表的每一行上都有一个删除按钮,它可以从数据库中删除相应的表。
function vislag(snapshot) {
let nylag = snapshot.val();
let idrettRef = database.ref("idrett/" + nylag.Idrett);
idrettRef.once("value", function(snapshotIdrett) {
let idrettinfo = snapshotIdrett.val();
txtTabell.innerHTML += `
<tr>
<td>${nylag.navn}</td><td>${nylag.klasse}</td>
<td>${nylag.antall}</td><td>${idrettinfo.navn}</td>
<td>
<input type="button" value="delete ${nylag.navn}" onclick="deletelag()"></td>
</tr>`;
});
}
lag.orderByChild("Idrett").on("child_added", vislag);
function deletelag() {
databaseobjekt.remove()
}
我想要 onclick 函数: deletelag() 从 Firebase 数据库中删除对象。我怎么做?
解决方案
要从数据库中删除一个节点,您需要DatabaseReference
指向该特定节点,然后调用remove()
它的方法。
对于您共享的代码,似乎是:
database.ref("idrett/" + nylag.Idrett).remove();
如果您有一个孩子列表,并且您希望用户能够单独删除其中的任何一个,您通常必须将每个孩子的 ID 添加到您的 HTML 中。这样您就可以读取用户单击的项目的 ID,并删除该特定节点。
一个简单的例子可能是这样的:
database.ref('listitems').once('value', (snapshot) => {
snapshot.forEach((child) => {
let id = child.id;
let name = child.val()
let liElm = `<li id='${id}'>${name}</li>`;
listElm.appendChild(liElm);
})
})
现在,当有人点击 时li
,您可以使用以下命令删除正确的子节点:
function onLiClick(e) {
let id = e.target.id;
database.ref('listitems').child(id).remove();
}
}
推荐阅读
- reactjs - 如何使用reactjs从列表中过滤日期和时间
- java - 垃圾值 --> ����出现在 spring-mvc 中 swagger-ui (io.swagger) 的描述中,如何删除?
- aws-cdk - 如何从 S3 使用 CloudFormation 模板
- java - 如何验证 x509 证书的签名?
- java - 使用插件启动 ElasticSearch 的测试容器
- python - 我们可以使用梯度下降逻辑回归进行多项分类吗?
- reactjs - razzle SSR 渲染反应,不从初始安装说明运行
- python - 如何在没有 sys.path 的情况下从父目录导入模块?
- mongodb - 如何从 mongodb asp.net 核心的操作过滤器中设置动态连接字符串
- cmake - 以选项为参数的 IF 生成器表达式