2016-11-11 19 views
0

私はAngularfire2Ionic2と一緒に使用していて、FirebaseListObservable subscribe()の機能でエラーをキャッチする方法を探しています。Angularfire2のFirebaseListObservableからのキャッチエラー

fbDataにはFirebaseListObservableが登録されています。ブラウザ/デバイスをオフラインに切り替えると、(エラー)機能は呼び出されません。なぜか分からない。

私の目的は、ユーザーがオフラインであるかfirebaseに到達できない場合にlocalStorageからデータを取得することです。ネットワークが到達不能である場合

export class MyService { 
    fbData: FirebaseListObservable<any[]>; 

    constructor(private af: AngularFire) { 
    this.data = af.database.list('/data', { preserveSnapshot: true }); 
    } 

    updateData() { 
    return new Promise<any[]>((resolve, reject) => { 
     this.fbData.subscribe(
     (snapshots) => { 
      resolve(snapshot.val()); 
     }, 
     (error) => console.log('error: ', error) // NEVER CALLED 
    ); 
    }); 
    } 

答えて

2

Firebase はエラーをスローしないます

は、ここに私の単純化されたコードです。 SDKは、ソケット接続が確立するのを静かに待ちます。サブスクリプションは、セキュリティルールによってクエリへの読み取りアクセスが拒否された場合にのみエラーになります。あなたは、このようなタイムアウトスキームを実装する場合

、手動ですべてを行う必要があります:あなたは、クエリを起動したときにタイムアウトを開始し、クエリが時間内に結果を返す場合、それを取り消す含みます。

関連する問題