我在组件类(Angular 5)中有以下数组:
this.collectionAdmins = ['uid_73hd', 'uid_38ng'];
由于我的数据库(firebase)中有用户信息表,我想循环遍历this.collectionAdmins
数组,从数据库中检索每个用户信息,因此可以在模板中显示该信息。
'uid_73hd': {
"bio": "about me info",
"email": "email2@gmail.com",
"status": "online",
"uid": "uid_73hd",
"username": "mary"
},
'uid_38ng': {
"bio": "about me info",
"email": "email@gmail.com",
"status": "online",
"uid": "uid_38ng",
"username": "john"
}
我怎样才能做到这一点?
答案 0 :(得分:1)
因为您使用的是Firestore和AngularFire2,我们可以使用以下解决方案:
import { combineLatest } from 'rxjs/observable/combineLatest';
export class YourComponent {
collectionAdmins = ['uid_73hd', 'uid_38ng'];
constructor(private afs: AngularFirestore) {
const abs = this.collectionAdmins
.map(id => afs.doc<User>(`users/${id}`).valueChanges()); // users table, replace with your real table
this.collections$ = combineLatest(abs);
}
}
p / s:结合了observable的其他一些运算符:forkJoin,zip。或者Promise.all如果你想使用Promise而不是Observable。