我正在尝试从Firestore获取多个文档,并将它们添加到数组中,然后返回该数组。由于某些原因,array.push()
没有将数据添加到数组中。是因为范围吗?没有错误,所以我怀疑是这样。
为什么项目不被推入数组?
这是我目前的做法。我也尝试过使用诺言而不是可观察的。 (保留返回的文档数量并在文档全部保存后立即解决)
getFriendsData(ids: string[]): Observable<User[]>{
return Observable.create((observer) => {
let lstFriends: User[] = [];
if (ids != null && ids.length > 0){
ids.forEach((sFriendID) => {
this.firestore.collection('users').doc(sFriendID).get().subscribe((data) => {
console.log("User Fetched", <User>{id: sFriendID, ...data.data()});
lstFriends.push(<User>{id: sFriendID, ...data.data()});
console.log("After push", lstFriends);
observer.next(lstFriends);
});
});
}
});
}