2017-05-09 2 views
0

Ich speichere eine Liste von Objekten in Google Firebase. Ich bin zu wollen jedes dieser Objekte verarbeiten und speichern sie in einem Array:Durch die von Firebase zurückgegebenen Objekte gehen

firebase.database().ref('trainingsets').once('value') 
      .then((snapshot) => { 

       var trainingSets: TrainingSet[] = []; 
       console.log(snapshot.val()); // Console 1 

       snapshot.forEach((child) => { 
        console.log("child=" + child); // Console 2 
        trainingSets.push(child); 
       }); 

       console.log(trainingSets); // Console 3 

       this.trainingSets = trainingSets; 
       this.trainingSetsChanged.next(this.trainingSets.slice()); 

      }); 

TrainingSet ist ein Modell, das jedes der Objekte reflektiert, die in Firebase gespeichert sind:

export class TrainingSet { 

    /** 
    * Unique Identifier of this set 
    */ 
    id:number; 

    name:string; 
    type: string; 
    description: string; 

} 

Meine Daten erfolgreich abgerufen. Bei Kommentar Konsole 1 sehe ich ein Objekt mit zwei Unterobjekten, die meine Daten enthalten. Bei Console 2 bekomme ich nur leere Objekte und bei Console 3 habe ich ein Array mit der richtigen Anzahl an Elementen, aber mit Elementen, die "V" heißen und in denen sich seltsame Unterelemente befinden. Ich bin mir nicht sicher, was das eigentlich ist.

Kann mir jemand empfehlen, was der beste Weg ist, dies zu tun? Ich brauche kein Array, wenn ich den Objektbaum richtig durchschreiten könnte, könnte ich das wahrscheinlich auch benutzen.

Antwort

Verwandte Themen