gpt4 book ai didi

javascript - 在 JavaScript 中从 Firebase 中删除特定 Node

转载 作者:行者123 更新时间:2023-12-04 17:15:22 25 4
gpt4 key购买 nike

如何删除数据库中的这个特定 Node ,如下图所示? (昵称会有所不同,因为我只是在测试它,如果有人混淆的话) enter image description here

我试过了

    const roomRef = firebase.database().ref(`allRooms/${rooms}`);

roomRef.orderByChild('nickname').equalTo(`${username}`).once('value',(snapshot)=> {
snapshot.ref.remove(); })

但它只是删除了我在那个房间里的所有 Node ,谢谢

最佳答案

你快到了。

当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。你的代码需要处理这样一个事实,即 `` 是一个包含类似以下内容的列表:

roomRef.orderByChild('nickname').equalTo(username).once('value',(snapshot)=> {
snapshot.forEach((userSnapshot) => {
userSnapshot.ref.remove();
})
})

上面的代码为每个匹配的 Node 运行一个单独的 remove() 调用。如果您只有一个(或几个)同名 Node ,这可能没问题。但如果您有更多 Node ,请考虑使用单个多路径更新来删除所有 Node ,如下所示:

roomRef.orderByChild('nickname').equalTo(username).once('value',(snapshot)=> {
let updates = {};
snapshot.forEach((userSnapshot) => {
updates[userSnapshot.key] = null; // 👈 setting to null will remove the node
})
roomRef.update(updates); // 👈 send all updates in one call
})

关于javascript - 在 JavaScript 中从 Firebase 中删除特定 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68790532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com