即使设置了ref url,Firebase也会返回整个数据库

时间:2017-04-03 04:38:19

标签: javascript firebase firebase-realtime-database

我正在尝试在我的网络应用中设置Firebase的实时数据库。

我已正确初始化所有内容并可以连接到数据库。但是,当我尝试获取数据时,我会在Snapchat中返回整个数据库。

我在这里的代码试图确定密钥是否存在:

var ref = firebase.database().ref('cars/');

ref.once('value', function (snapshot) {
    if (snapshot.hasChild('toyota')) {
        alert('exists');
    } else {
        alert('does not exist');
    }
});

这始终显示'不存在'对话框,所以当我跑:

alert(JSON.stringify(snapshot));

我意识到firebase正在取得一切。

这是我的数据库的结构:

{
"users": {
    "uid": {
        "name": "John Doe",
        "balance": 500
    }
},
"cars": {
    "carid": {
        "name": "Name of Car",
        "cost": "250",
        "features": [
            "ac", "awd", "leather_seats"
        ]
    }
  }
}

有人知道如何解决这个问题吗?我做的每个请求都会返回整个数据库,这令人沮丧。感谢。

3 个答案:

答案 0 :(得分:0)

嘿尝试使用子方法访问节点

var ref = firebase.database().ref().child('/cars');

抱歉,有些遗漏了。

答案 1 :(得分:0)

我以下列方式检索节点的数据,没有前面或后面的斜杠。检查以下是否有效。

var ref = firebase.database().ref().child('cars');

答案 2 :(得分:0)

由于某种原因,firebase在节点下放置了数据库的完整副本,所以实际上我 从特定节点获取数据,它恰好包含了一个副本数据库中。

我很好奇这是怎么发生的,因为我的印象是,当你将JSON导入firebase时,它覆盖了整个数据库。