我刚刚开始使用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