операторы тоже не будут выдавать значение.

я есть 3 параллельных Firebase требует. И мне нужно присоединиться к ним как к одному объекту. Код как ниже:

import {Http} from "@angular/http";
import {AngularFireDatabase} from "angularfire2";
import {Thread} from "../model/thread";
import {Message} from "../model/message";
import {Participant} from "../model/participant";

constructor(private  http: Http, private db:AngularFireDatabase) { }

loadUserThreads(uid): Observable<AllUserData> {
return Observable.forkJoin([
  this.db.list('participant/' + uid + '/threads').first(),
  this.db.list('participant/' + uid + '/messages').first(),
  this.db.list('participant/' + uid + '/participants').first()
])
  .map((data:any[]) => {
    let threads: Thread[] = data[0];
    let messages: Message[] = data[1];
    let participants: Participant[] = data[2];
    let AllUserData = {
      threads: threads,
      messages: messages,
      participants: participants
    }
    return AllUserData;
  })
  }

Эта работа и возвращает точный формат, который мне нужен, который с этим интерфейсом:

export interface AllUserData {
  participants: Participant[];
  threads: Thread[];
  messages: Message[];
}

Проблема в том, что forkJoin не запустится без .first () всех наблюдаемых в Firebase. И если я использую .first () для завершения всех наблюдаемых в firebase, я ПОТЕРЯЮ динамические обновления, поэтому в первую очередь использую firebase. Как я могу получить лучшее из обоих миров? - Поддерживать в реальном времени наблюдаемые объекты Firebase, но можете ли присоединиться к ним, как мой формат интерфейса? Я тяну свои волосы на этом. Любая помощь будет оценена!

Ответы на вопрос(1)

Ваш ответ на вопрос