Как перебрать детей из firebase объекта - PullRequest
0 голосов
/ 31 марта 2020

Я новичок в Firebase и javascript, но я пытаюсь перемещаться по моей базе данных Firebase, в которой действительно только 1 объект и несколько детей под ним. Я следовал некоторым урокам, но сейчас чувствую себя как в кроличьей норе. Я получаю только верхние уровни, а не детей

enter image description here

Это то, что я пробовал:

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);
}

функция записи работает хорошо, но не getData, где я пытаюсь отобразить каждое значение объекта в консоли:

enter image description here

но все, что я получаю, это имена переменных из функции writeData. Вы видите, что я делаю не так?

1 Ответ

1 голос
/ 31 марта 2020

Насколько я вижу, у вас есть только одно упражнение под /Exercise, что означает, что for( var i = 0; i < keys.length; i++){ l oop не требуется.

Пример доступа / регистрации различных части вашего JSON:

function gotData(data){
    var exercise = data.val();
    console.log(exercise);
    console.log(exercise.hoeveelheidKilogram);
    exercise.hoeveelheidKilogram.forEach(function(value) {
        console.log(value);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...