1

Firebaseには、適切な権限を持たないユーザがアクセスすることがあるコレクションがあります。これが起こるとすぐに、コンソールに警告と捕らえられない例外がたくさんあります。正しく処理することは不可能なようです。私は通常、このように観察を購読する:AngularFire2でFirebaseのパーミッションエラーを処理する

this.af.database.object('/someLocation/abc').subscribe(obj => { 
    // logic 
}); 

セキュリティ規則を緩めなければ、これらの未処理の例外を処理するための最良の方法は何ですか?

答えて

2

あなたのsubscribeコールにエラーハンドラを渡すことができます。これは、未処理のエラーを削除する必要があり

this.af.database.object('/someLocation/abc').subscribe(
    obj => { 
    // logic 
    }, 
    error => { 
    // handle/report the error 
    } 
); 

/コンソールからの約束を拒否し、それはFirebaseが残って警告を報告することを可能性があります。

また、observablesエラーが発生すると、サブスクライバは自動的に登録解除されることに注意してください。だから、エラーが出たら、それはそれです。それ以上の値は出力されません。

import { Observable } from 'rxjs/Observable'; 
import 'rxjs/add/observable/of'; 
import 'rxjs/add/operator/catch'; 

let abc$ = this.af.database 
    .object('/someLocation/abc') 
    .catch(error => { 
    // handle the error 
    // and return an appropriate observable if you have one 
    // perhaps a default value or an empty observable, etc. 
    // or rethrow the error 
    // or return Observable.throw(new Error('Some error')) 
    return Observable.of("some-default-value"); 
    }); 
+0

ありがとう:

subscribeにエラーハンドラを指定する代わりに、あなたが観察チェーンを構成している場合は、catch演算子を使用することです。私はどのようにエラーラムダを逃したのか分かりません。おそらくこれはあまりにも長く始まったでしょう。 –

関連する問題