自从我已经编码了一段时间以来,对我的词汇感到抱歉。我似乎无法加载我想要的数据。 Concole日志显示所有值(而不是子项)的值。所以我的数据库是图片,但是控制台日志只显示了2,140,70等数字,而childData.laps是未定义的,var averageBoardRef = database.ref('average_board');
averageBoardRef.on('value', function (snapshot) {
snapshot.forEach(function (childSnapshot) {
var childData = childSnapshot.val();
$('#average_laps-display').append(`
${childData.laps}
`);
console.log(childData)
})
});
我希望能够拥有childData.laps = 2,或者有人可以告诉我一种更好的解决方法。
最佳答案
您应该循环遍历子节点,或者获取特定的命名子节点的值。您的代码混用了这两种代码,这意味着它们都不如您期望的那样起作用。
如果只想获取laps
属性的值,则可以执行以下操作:
averageBoardRef.on('value', function (snapshot) {
$('#average_laps-display').append(snapshot.val().laps);
});
另外,如果您这样做,则可以加载较少的数据:
averageBoardRef.child('laps').on('value', function (snapshot) {
$('#average_laps-display').append(snapshot.val());
});
如果要遍历所有属性,并对其值做些事情,那就是:
averageBoardRef.on('value', function (snapshot) {
snapshot.forEach(function (childSnapshot) {
var childData = childSnapshot.val();
console.log(childData); // prints 140, then 2, then 2, then 4, etc
})
});
关于javascript - 如何从Firebase正确检索数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59924703/