我无法使用以下结构(部分)从我的firebase数据库中检索密钥。
{
"Belmonte" :
{
"p1" : "p1",
"p2" : "p2",
"p3" : "p3",
"p4" : "p4"
},
"Bricktown" :
{
"p1" : "p1",
"p2" : "p2",
"p3" : "p3",
"p4" : "p4"
},
"Divino Rostro" :
{
"p1" : "p1",
"p2" : "p2",
"p3" : "p3",
"p4" : "p4"
},
"Esperanza" :
{
"p1" : "p1",
"p2" : "p2",
"p3" : "p3",
"p4" : "p4"
}}
以下是我用来检索数据的代码(来自示例)。我包括警报以查看代码是否进入循环,但它没有。
firebase.initializeApp(config);
var hello = document.getElementById("hello");
var dbref = firebase.database().ref().child("roomlist");
//dbref.on("value", snap => hello.innerText = snap.val());
dbref.once("value", function(snapshot) {
// The callback function will get called twice, once for "fred" and once for "barney"
hello.innerText = snapshot.numChildren();
var ctr = 0;
snapshot.forEach(function(childSnapshot) {
// key will be "fred" the first time and "barney" the second time
var key = childSnapshot.key();
var val = childSnapshot.val();
ctr++;
alert(ctr);
// childData will be the actual contents of the child
hello.innerText = ctr;
});
});
并且
hello.innerText = snapshot.numChildren();
返回20.这是数据库中的实际数据数。
答案 0 :(得分:4)
我明白了。显然你不需要把()。所以我改变了
var key = childSnapshot.key();
到
var key = childSnapshot.key;
并且有效。