2
Firebaseで多対多リレーションシップを扱うことについての質問があります。基本的には、Firebaseデータ内の複数のパスからユーザプロファイルオブジェクトを構築しようとしています。私は、observableを返す関数を構築しようとしました。そして、そのobservableのデータをFirebaseからのネストされた観測可能なグラブデータとして更新します。AngularFire2 - ネストされたFirebaseObjectObservableはネストされたFirebaseコールを起動しません
問題は、ネストされたオブザーバブルが、私が理解できるものから呼び出されないことです。私はこれに対して数時間何か本当の成功なしに頭を打ってきた。誰かが私が間違っていることを伝えることはできますか?私はこれが解決される非常に一般的な問題だと思います。
public getUserProfile(data) {
return this._af.database.object(`/social/users/${data.id}`).map((user) => {
for (let vidKey in user.videos) {
// Once the code hits this line, it never fires at all :(
this._af.database.object(`/social/videos/${vidKey}`).map((video) => {
user.videos[vidKey] = video;
});
}
return user;
});
}
cartantを、あなたは絶対最高です。私は、これが、私がやっているいくつかの異なる "参加型"のために、この種の機能をたくさん再利用するインスタンスの1つであることを認識しました。これは完全に動作し、実際にそれを行う簡潔な方法を紹介します:)乾杯! –
実際には私は興味がありました:UIが自動的にビデオの詳細を変更して、別の場所に変更した場合、Firebaseデータベースの各ビデオの購読を使用するには、この作業をやり直す必要がありますか?現在のバージョンでは、ビデオデータは一度だけ読み込まれますが、データベースで更新されていれば更新されません。私は、同じ機能をユーザー間のメッセージ集約や、異なる投稿のフィードに使用したいと考えています。 –
うん、あなたはそれを変更する必要があります。答えのコードは、ユーザーが変更した場合にのみ再発行されます。変更があったときに再度発光したい場合は、 'forkJoin'の代わりに' combineLatest'を使うことができます。そして、 'first'演算子も削除してください。 – cartant