2016-08-18 4 views
2

ホワイトリストのユーザーだけがデータベースを読み取れるようにルールを設定しました。ホワイトリストに載っているユーザーはすべてうまく動作します。しかし、私は他のケース、特にホワイトリストに載っていない認証されたユーザーをどのように処理するかを理解できませんでした。彼らはセキュリティルールに失敗するため、.on( 'value')リスナーは起動せず、例外も発生しません。読み取り権限のない認証済みユーザーを検出する方法については、教えてください。js web APIを使用してFirebaseで読み取り権限拒否をキャッチする方法

答えて

3

on()メソッドは、ユーザーがその場所で待機する権限を持たない(または失う)ときに呼び出される、いわゆる「キャンセルコールバック」を受け取ります。 reference documentation for on()から:

cancelCallbackOrContext

オプション

あなたのクライアントは、このデータの読み取り権限を持っていない(または、それは許可を持っていたので、あなたのイベントサブスクリプションが今までにキャンセルされた場合に通知されますオプションのコールバック今はそれを失ってしまった)。このコールバックには、障害が発生した理由を示すErrorオブジェクトが渡されます。

だから、ほとんどの場合、のようなものを使用します。

ref.on('value', function(snapshot) { 
    console.log(snapshot.val()); 
}, function(error) { 
    console.error(error); 
}) 
+0

をありがとうございました! –

関連する問題