【发布时间】:2017-12-07 11:08:37
【问题描述】:
我刚刚开始使用 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 来完成最后一步。或者是否有 angular/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
}
【问题讨论】:
标签: angular typescript firebase angularfire2