Ich beginne gerade mit angularFire2. Ich habe einige Firebase Daten wie folgt strukturiert:Abrufen von Werten aus mehreren Schlüsseln in Firebase mit AngularFire2
{
"user-friends": {
"-userkey1": {
"-userkey2": true,
"-userkey3": true
}
},
"users": {
"-userkey1": {
"uid": "id1",
"uname": "Jim Yu"
},
"-userkey2": {
"uid": "id2",
"uname": "Bob Smith"
},
"-userkey3": {
"uid": "id3",
"uname": "Jane Doe"
}
}
}
Bisher habe ich die Daten in user-friends
Knoten für -userkey1
abrufen kann, die
"-userkey1": {
"-userkey2": true,
"-userkey3": true
}
Dann kehrt Ich möchte die uname
erhalten können, von jeder Schlüssel, und speichern Sie das in einer Variablen, die an die Ansicht gebunden werden würde.
Ich bin mir nicht ganz sicher, wie ich diesen letzten Schritt konkret mit angularFire2..oder wenn es eine eckige/firebase-spezifische Methode/Hilfsmethode zur Lösung dieses Problems gibt.
so weit ist es das, was ich habe jedoch einmal I Schleife durch jede Taste und versuchen, den Benutzernamen in eine Anordnung zu schieben, die Konsole, um die ersten Tasten protokolliert uname
aber dann schreit cannot read property 'push' of undefined
userFriends(userkey: string){
console.log("userKey=" + userkey)
var getUsrFriends = this.afDB.list("https://myfirebaseurl.com/user-friends/" + userkey
).subscribe(data => {
data.forEach(friendKey => {
console.log(friendKey.$key) //my instinct tells me looping through the keys and storing in an array is not a optimal solution
var getUserInfo = this.afDB.object("https:/myfirebaseurl.com/users/" + friendKey.$key, {
}).subscribe(u => {
console.log(u.uname)
this.friendsList.push(u.uname) // <- undefined error
})
});
})
}
<ng-container *ngIf="showView == 'friend'">
<ion-list *ngFor="let friend of friendsList">
<h3>{{friend}}</h3>
</ion-list>
</ng-container>
EDIT: Der undefinierter Fehler wurde tatsächlich verursacht, indem das Array friendsList
nicht ordnungsgemäß initialisiert wurde.
export class UserPage {
friendsList: string[] = []
// constructor, etc
}
Dank @theblindprophet. Ich erkannte auch, dass ich Freunde Array nicht richtig initialisiert hatte. Ich hatte nur den Typ erklärt. – gregdevs