我剛剛開始使用angularFire2。我有結構化的一些火力地堡數據如下:使用AngularFire2從Firebase中的多個鍵檢索值
{
"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"
}
}
}
到目前爲止,我可以在user-friends
節點-userkey1
,返回
"-userkey1": {
"-userkey2": true,
"-userkey3": true
}
然後,我希望能夠得到uname
的檢索數據每個鍵,並將其存儲在一個將綁定到視圖的變量中。
我有點不確定如何去專門使用angularFire2 ..或如果有一個角/ firebase特定的方法/輔助方法來解決這個問題。
到目前爲止,這是我,但一旦通過每個關鍵我環路,並嘗試將用戶名推到一個數組中,控制檯日誌第一項uname
但隨後尖叫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>
編輯:未定義的錯誤實際上是由於未正確初始化friendsList
陣列造成的。
export class UserPage {
friendsList: string[] = []
// constructor, etc
}
謝謝@theblindprophet。我也意識到我沒有正確初始化friendsList數組。我只是宣佈了這種類型。 – gregdevs