我是 firebase 和 javascript 的新手,但我正在尝试迭代我的 firebase 数据库,该数据库实际上只有 1 个对象和其下的一些子对象。我遵循了一些教程,但感觉现在就像在兔子洞里一样。我只取回顶层,而不取回子级
这是我尝试过的:
var ref = database.ref('Exercise');
ref.on('value', gotData, errData);
function writeData(){
firebase.database().ref("Exercise").set({
nameExercise: exerciseName.value,
setAm: setAmount,
// setAm: {
// HoeveelheidArr,
// Gewicht,
//}
repetitie: Gewicht,
hoeveelheidKilogram:Gewicht,
});
}
var ref = database.ref('Exercise');
ref.on('value', gotData, errData);
function gotData(data){
//console.log(data.val());
var exercise = data.val();
var keys = Object.keys(exercise);
console.log(keys);
for( var i = 0; i < keys.length; i++){
var k = keys[i];
var exerciseID = scores[k].nameExercise.value;
var sets = scores [k].setAm.value;
var reps = scores[k].repetitie.value;
var kg = scores [k].hoeveelheidKilogram.value;
console.log(exerciseID, sets,reps,kg);
}
}
function errData(err){
console.log('Error!');
console.log(err);
}
write 函数运行良好,但 getData 运行良好,我试图在控制台中显示对象的每个值:
但我返回的只是 writeData 函数中的变量名称。你看到我做错了什么了吗?
最佳答案
据我所知,您在/Exercise
下只有一个练习。 ,这意味着 for( var i = 0; i < keys.length; i++){
不需要循环。
如何访问/记录 JSON 各个部分的示例:
function gotData(data){
var exercise = data.val();
console.log(exercise);
console.log(exercise.hoeveelheidKilogram);
exercise.hoeveelheidKilogram.forEach(function(value) {
console.log(value);
});
}
关于javascript - 如何迭代 firebase 对象子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60951640/