阵列推送在Firestore回调中不起作用

时间:2019-04-28 17:35:55

标签: javascript typescript firebase google-cloud-firestore

我正在尝试从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);
                });
            });
        }
    });
}

如您所见,该用户未添加到数组,但没有错误。 enter image description here

0 个答案:

没有答案