現在、FirebaseとAngular 4でプロジェクトをビルドしています。データの多くのキーと多くの異なるuidキーを含むデータオブジェクトを取得しています。すでにマッピングされているストリームに複数の観測値を抽出する角度rxjs
データをいくらか管理しやすいように、私はオブジェクトデータをホストで変更できるいくつかのキーの中に保存したくありません。
私はuidが格納されているインスタンスでは、私は抽出されたobservableの新しいキーを作成したいと思います。私は簡単にマッピングされたオブジェクト内の観測可能として追加することができますが、私は実際にストリーム中にオブジェクトにオブザーバブルを抽出したいと思います。
this.ss.data()
.map(res => {
res['test1'] = this.fb.serie(res['serieUid']).map(res => res)
return res
})
.subscribe(res => {
console.log(res)
})
Result -
serieUid:"-Kk1FeElvKMFcyrhQP4T"
state:"Tennessee"
test1:FirebaseObjectObservable
timezone:"US/Eastern"
をしかし、私は、抽出された観察可能な内部「TEST1」を持っていると思い、私はこの上でいくつかの時間のためにこれに失敗していると混乱しています:ここで私は、現在持っているものです。 uidのインスタンスが複数存在するため、複数回実行する必要がありました。次に購読する。
後、以下の答えフォローアップ:
私は私の最後の機能
getRound(roundUid: string) {
/**
Retrieves a round based simply on the uid
supplied.
**/
return this.fb.round(roundUid)
.mergeMap(round => // Get Serie Data
this.fb.serie(round['serieUid']).map(serie => {round['serie'] = this.cs.cleanForFb(serie); return round})
)
.mergeMap(round => // Get Type Data
this.fb.type(round['typeUid']).map(type => {round['type'] = this.cs.cleanForFb(type); return round})
)
.mergeMap(round => // Get sx Coast Data
this.fb.coast(round['sxCoastUid']).map(sxCoast => {round['sxCoast'] = this.cs.cleanForFb(sxCoast); return round})
)
}
これは素晴らしいニュースです。 – 22Ryann
2つ以上のUIDのオブジェクトがあった場合、どうすればよいでしょうか?鍵で ループして抽出するには? – 22Ryann