等待动态生成的 Firebase 列表可观察对象完成

Waiting for dynamically generated Firebase list observables to finish

我正在尝试等待几个动态生成的可观察对象完成,以便我可以遍历 Firebase 列表。我已经尝试使用 forkJoin 和 zip 但最后一行没有记录任何内容。

this.db.list<ChatByUser>(`chats_by_user/${this.userService.user.id}`).valueChanges().first().subscribe(chatsByUser => {
    const obsArray: Observable<Chat>[] = [];

    chatsByUser.forEach(chatByUser => {
        obsArray.push(this.db.object<Chat>(`chats/${chatByUser.chatId}`).valueChanges());
    });

    Observable.zip(obsArray).first().subscribe(chats => console.log(chats));
});

我不知道这是否与它有关,但我正在使用 rxjs 6 和 rxjs-compat 并像这样导入运算符:

import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/zip";

我需要先使用可观察对象,然后再将它们添加到数组中。所以将 first() 方法添加到 valueChanges() 就成功了。