2017-11-22 5 views
0

だから、基本的Firestoreドキュメント/コレクションの参照のonSnapshotハンドラは次のとおりです。私はそれはAF2にフックアップしていますどのように表示されていないAngularFire2 V5 Firestore - どのように「onSnapshot」にエラーコールバックをフックする

ref.onSnapshot(query => {}, error => {}, complete => {}) 

。 Firestoreのドキュメントでは、そのコールバックで発生するさまざまなエラーを処理する必要があることを強調しています。のために、それらの活性データリスナー(観測)が出誤らなかった場合

this.afDb.collection('my_collection') 
    .valueChanges() 
    .retry(); 

私角度5つのサービスはシングルトンがそうであるように、私が好む見て:

は、それは単にRxJS土地の等価に変換していベータ版ではエラーが発生します。それは主な懸念事項です。

答えて

1

再試行を実装するには、キャッチしてエラーをスローする必要があります。私はitems/threeに存在しない文書を聞くことを試みる上記の例で

export class AppComponent { 
    constructor(afs: AngularFirestore) { 
    afs.doc<{}>('items/three') 
     .snapshotChanges() 
     .map(action => action.payload.data()) 
     .catch(e => Observable.throw(e)) 
     .retry(2) 
     .subscribe(
     snap => console.log(snap), 
     err => console.log(err, 'Retried a few times') 
    ); 
    } 
} 

。存在しないDocumentSnapshot.exists()を呼び出す前に.data()を呼び出すと、エラーが発生します。 I .catch()し、エラーをスローします。 .retry(2)を使用すると、RxJSは.subscribe()メソッドでエラーコールバックを呼び出す前に2回以上試行します。

+0

あなたの答えをありがとう。捕まえる必要もありますか?再試行では、まず最初にエラーをキャッチする必要がありますか? – DarkNeuron

関連する問題