我正在尝试在我的网络应用中设置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"
]
}
}
}
有人知道如何解决这个问题吗?我做的每个请求都会返回整个数据库,这令人沮丧。感谢。
答案 0 :(得分:0)
嘿尝试使用子方法访问节点
var ref = firebase.database().ref().child('/cars');
抱歉,有些遗漏了。
答案 1 :(得分:0)
我以下列方式检索节点的数据,没有前面或后面的斜杠。检查以下是否有效。
var ref = firebase.database().ref().child('cars');
答案 2 :(得分:0)
由于某种原因,firebase在节点下放置了数据库的完整副本,所以实际上我 从特定节点获取数据,它恰好包含了一个副本数据库中。
我很好奇这是怎么发生的,因为我的印象是,当你将JSON导入firebase时,它覆盖了整个数据库。