サブスクリプション内からオブザーバブルを返しますか?

グリズリー

AngularのFirebaseライブラリであるAngularfireで特定のドキュメントを見つけようとしています。正しいドキュメントIDを返すオブザーバブルを取得しました。このオブザーバブルをサブスクライブし、内部のIDを使用して、ドキュメント上のすべてのデータをフェッチします。これもオブザーバブルとして返されます。

  getSessions(date: firestore.Timestamp) {
    this.db.collection('days', ref => ref.where('date', '==', date)).snapshotChanges().subscribe(docRef => {
      return this.db.collection('days').doc(docRef[0].payload.doc.id).collection('sessions').valueChanges();
    })
  }

これに対する私の現在の試みは、最初に、必要なドキュメントのIDを取得します。これは私が購読している最初の観察可能なものになります。このサブスクリプション内では、IDを使用してネストされたsessionsコレクションを取得します。this.db.collection('days').doc(docRef[0].payload.doc.id).collection('sessions').valueChanges();必要なものを正確に取得しますが、これを返そうとすると、receiveingメソッドはundefinedのみを取得します。これは非同期の問題として私を襲います。

の使用を提案する投稿をいくつか見ましたswitchMapが、これを実行しようとしてもうまくいきませんでした。

  getSessions(date: firestore.Timestamp) {
    this.db.collection('days', ref => ref.where('date', '==', date)).snapshotChanges().pipe(switchMap(docRef => {
      return this.db.collection('days').doc(docRef[0].payload.doc.id).collection('sessions').valueChanges();
    }))
  }

参考までに、collectionメソッドは常にobservableを返します。サブスクリプションの外で、最も内側の行を単独で実行した場合、それは観察可能なものを返し、必要な動作を問題なく完了します。

AliF50

私はswitchMapうまくいくはずだと思います、しかしあなたは関数でobservableを返さなければなりません。

getSessions(date: firestore.Timestamp) {
    // !! check out the first return here !!
    return this.db.collection('days', ref => ref.where('date', '==', date)).snapshotChanges().pipe(switchMap(docRef => {
      return this.db.collection('days').doc(docRef[0].payload.doc.id).collection('sessions').valueChanges();
    }))
  }

...
this.getSessions(...).subscribe(data => { console.log(data) });

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

RxJSのサブスクリプションからオブザーバブルを返す

分類Dev

「beforeChange」サブスクリプションでオブザーバブルの新しい値を取得します

分類Dev

サブスクリプション内でさまざまな量のオブザーバブルをサブスクライブするRxJS

分類Dev

angualr2 は、サブスクライブからオブザーバブルを返します

分類Dev

rxjsで、オブザーバブル内のオブザーバブルに複数のサブスクリプションをチェーンする方法は?

分類Dev

サブスクライブからオブザーバブルを返す方法

分類Dev

サブスクライブからオブザーバブルを返す方法

分類Dev

オブザーバブルのサブスクリプションを常に破棄する必要がありますか?

分類Dev

オブザーバブルを削除すると、そのサブスクリプションも削除されますか?

分類Dev

1つのオブザーバブルで複数のサブスクリプションをどのように行いましたか

分類Dev

サブスクリプションから値を返す

分類Dev

iOSアプリのサブスクリプションオプションをユーザーから隠すことはできますか?

分類Dev

Azureサブスクリプションからユーザーを削除します

分類Dev

複数のオブザーバブル/サブスクリプションをネストする方法

分類Dev

%ERRORLEVEL%を使用して、バッチスクリプトのサブルーチンから値を返します

分類Dev

オブザーバブルのサブスクリプション状態を別のオブザーバブルに変更する

分類Dev

httpリクエストからオブザーバブルを返す方法

分類Dev

オブザーバブル/サブスクリプションの順序

分類Dev

オブザーバブルとサブスクリプションの回避

分類Dev

角度でオブザーバブルを返すHttpClientリクエストをサブスクライブしないとどうなりますか

分類Dev

AngularAuthGuardはサブスクリプション内からUrlTreeを返しません

分類Dev

リアクティブエクステンションでオブザーバブルをマージしますか?

分類Dev

トランザクションレプリケーションサブスクライバーでDelayedDurabilityをオンにしても安全ですか?

分類Dev

オペレーターから返されたオブザーバブルがサブスクライブされた場合、オリジンオブザーバブルが値を出力するのはなぜですか?

分類Dev

2つの内部オブザーバブルを切り替えます:switchMapは以前のサブスクリプションのサブスクリプションを解除しません

分類Dev

自動更新サブスクリプションをテストするアップルのサンドボックスサーバーからの返信でステータス値として21004が返されるのはなぜですか?

分類Dev

サブスクリプションを使用して関数からデータを返す

分類Dev

PWAはWebプッシュサブスクリプションをブラウザと共有しますか?

分類Dev

2つのオブザーバブルを相互にサブスクライブする場合は、サブスクリプションをキャンセルします

Related 関連記事

  1. 1

    RxJSのサブスクリプションからオブザーバブルを返す

  2. 2

    「beforeChange」サブスクリプションでオブザーバブルの新しい値を取得します

  3. 3

    サブスクリプション内でさまざまな量のオブザーバブルをサブスクライブするRxJS

  4. 4

    angualr2 は、サブスクライブからオブザーバブルを返します

  5. 5

    rxjsで、オブザーバブル内のオブザーバブルに複数のサブスクリプションをチェーンする方法は?

  6. 6

    サブスクライブからオブザーバブルを返す方法

  7. 7

    サブスクライブからオブザーバブルを返す方法

  8. 8

    オブザーバブルのサブスクリプションを常に破棄する必要がありますか?

  9. 9

    オブザーバブルを削除すると、そのサブスクリプションも削除されますか?

  10. 10

    1つのオブザーバブルで複数のサブスクリプションをどのように行いましたか

  11. 11

    サブスクリプションから値を返す

  12. 12

    iOSアプリのサブスクリプションオプションをユーザーから隠すことはできますか?

  13. 13

    Azureサブスクリプションからユーザーを削除します

  14. 14

    複数のオブザーバブル/サブスクリプションをネストする方法

  15. 15

    %ERRORLEVEL%を使用して、バッチスクリプトのサブルーチンから値を返します

  16. 16

    オブザーバブルのサブスクリプション状態を別のオブザーバブルに変更する

  17. 17

    httpリクエストからオブザーバブルを返す方法

  18. 18

    オブザーバブル/サブスクリプションの順序

  19. 19

    オブザーバブルとサブスクリプションの回避

  20. 20

    角度でオブザーバブルを返すHttpClientリクエストをサブスクライブしないとどうなりますか

  21. 21

    AngularAuthGuardはサブスクリプション内からUrlTreeを返しません

  22. 22

    リアクティブエクステンションでオブザーバブルをマージしますか?

  23. 23

    トランザクションレプリケーションサブスクライバーでDelayedDurabilityをオンにしても安全ですか?

  24. 24

    オペレーターから返されたオブザーバブルがサブスクライブされた場合、オリジンオブザーバブルが値を出力するのはなぜですか?

  25. 25

    2つの内部オブザーバブルを切り替えます:switchMapは以前のサブスクリプションのサブスクリプションを解除しません

  26. 26

    自動更新サブスクリプションをテストするアップルのサンドボックスサーバーからの返信でステータス値として21004が返されるのはなぜですか?

  27. 27

    サブスクリプションを使用して関数からデータを返す

  28. 28

    PWAはWebプッシュサブスクリプションをブラウザと共有しますか?

  29. 29

    2つのオブザーバブルを相互にサブスクライブする場合は、サブスクリプションをキャンセルします

ホットタグ

アーカイブ