Массив Push не работает в обратном вызове Firestore - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь получить несколько документов из хранилища и добавить их в массив, возвращая этот массив.По какой-то причине 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...