我很难删除 firebase 实时数据库中的节点。
这就是我尝试的,在Firebase中删除节点以及如何在Firebase上删除/删除节点:
1)
let chatRef = db.ref("/chats");
var query = chatRef.orderByChild("uid").equalTo(chatId);
query.on("child_added", (snapshot) => {
snapshot.ref.remove();
});
使用上面的代码,当我点击删除整个数据(所有节点,包括聊天)时被删除。
2)
chatRef.limitToLast(1).once("value", (snapshot) => {
snapshot.forEach((deedSnapshot) => {
deedSnapshot.ref.remove();
});
});
我按预期工作,但它只删除了/chats中的最后一个节点,并且我想指定要删除的聊天/ uid
。
3)
let chatRef = db.ref("/chats");
chatRef.child("5ZuZvUyByDcbteclgpM0t08beVn1").remove();
这只是导致什么也没发生。我在一个try/catch中遇到了这种情况,单击“delete”会导致try运行,但是没有捕获到任何错误。数据库里什么也没发生。
4)
let chatRef = db.ref("/chats/MJy8cxO85ldEnDScsWZ");
chatRef.remove();
结果与上面的数字 3 相同 - 什么也没发生,在 try/catch 中没有发现任何错误。
更新:我尝试了以下操作,但这将删除整个聊天
数据,而不是我想要删除的节点:
let chatRef = db.ref("/chats");
chatRef
.orderByChild("uid")
.equalTo(chatId)
.once("value")
.then(function (snapshot) {
snapshot.forEach((childSnapshot) => {
//remove each child
chatRef.child(childSnapshot.key).remove();
});
});
我参加聚会有点晚了。我想建议另一种方式。
要删除一个节点,我们可以在< code>set中传递null值
import { database } from 'firebase-admin';
const db = database();
const ref = db.ref('server/saving-data/fireblog');
dataRef.set(null, (error) => {
if (error) {
console.log('Data could not be removed.' + error);
} else {
console.log('Data removed successfully.');
}
});
你的第四个例子应该有效,除非你有一个错别字:
let chatRef = db.ref("/chats/MJy8cxO85ldEnDScsWZ");
它应该是:
let chatRef = db.ref("/chats/-MJy8cxO85ldEnDScsWZ");
您缺少“M”之前的“-”。
我想删除firebase实时数据库中某个子项的特定子项。 我已经添加了我的数据库的图片。 我想删除突出显示的子对象。
由按键生成的firebase子节点 使用Javascript,如何在firebase实时数据库上删除由push key生成的子节点 上面的代码用于向实时数据库添加数据
我想删除我的根目录中的所有节点,如图所示。 控制台中没有删除按钮,我如何删除它们? 节点附近应该有一个垃圾图标,但它没有显示。
我如何删除记录“苹果”(在图片中标记)? 根据文档,要移除一个项,需要对引用调用removeValue()。但要获得引用,我需要子ID。因为它是一个随机生成的id(-kisnx87ayigsh3ilp0d),如何删除它?
我从一个根有两个节点,我想在一个请求中删除这两个节点的数据。两个子节点具有相同的密钥。我试过这个: 但是它只从第一个节点删除数据
我以为上面的办法行得通,但它失败了。我把它放在渲染行部分。它出现了reference.remove失败。第一个参数必须是有效的函数。就像在这些房间里,它有信息,我认为这是我出错的地方,但我不知道如何去做它。谢谢。