使用密钥从firebase删除数据

时间:2018-03-23 16:20:02

标签: javascript firebase firebase-realtime-database

这是我第一次使用firebase。我的数据库看起来像是:enter image description here

我有密钥,想要删除该密钥的节点:

var dataKey = $("#trainClicked").attr("data-key");
var ref = database.ref("trains/" + changeTrain);
ref.on('value', function (snapshot) {
console.log(snapshot)
    if (snapshot === null) {
        console.log("does not exist")
    } else {
        return database.ref().remove(dataKey)
   }
});

这将删除整个数据库并发出错误:

return database.ref().remove(dataKey)

我已阅读过firebase文档和许多帖子,但我仍然无法让它工作。提前谢谢。

3 个答案:

答案 0 :(得分:0)

Reference.remove()不接受任何参数,而是删除您调用它的引用上的数据。由于您在数据库的根目录上调用remove(),因此将删除所有数据。

您在这里寻找ref.remove()snapshot.ref.remove()

答案 1 :(得分:0)

只需在该节点上运行空.set()命令即可​​。这将删除所有内容。如果运行空.set(),则将删除整个数据库。 : - )

答案 2 :(得分:0)

这是有效的代码:

var dataKey = $("#train-clicked").attr("data-key");
    var ref = database.ref("trains/" + dataKey)
    ref.once('value', function (snapshot) {
        if (snapshot === null) {
            console.log("does not exist")
        } else {
         snapshot.ref.remove();
        }

更改snapshot.ref.remove()行,但也改变ref.on到ref.once ....当它是.on它工作一次但是它给出了一个错误,因为它试图读取的东西不是还有(我想)。