2017-01-24 4 views
1

私は自分のデータベースにすべてのものを読み書きできるようにしようとしています。adminがデータベース内のすべてを書き込み読み込みするためのFirebaseセキュリティルール

firebaseシミュレータでこれを実行しようとすると、読み取り拒否エラーが発生します。

{ 
    "rules": { 

    ".read": "root.child('Admin').child('isAdmin').child('+$AUID').val() === true", 

    "Admin": { 
     "isAdmin": { 
     "$AUID": { 

      ".read": "$AUID === auth.uid", 
      ".write": "$AUID === auth.uid", 
      ".validate": "newData.hasChildren(['active'])", 

      "active": { 

      "active": "true" 
      }, 
     }, 
     }, 
    }, 
} 
+0

変更 '+ $ AUID' を支配します。そして、あなたは$ AUID:trueのキー:値ペアを調べていますが、これは少なくとも提供されたルールでは有効なキー:値のペアではありません。また、他のユーザーとは対照的に、「自分」を定義するものは何ですか? – Jay

答えて

4

アクセスレベルが別のノードの値によって決まるFirebaseにユーザーがアクセスできるようにするには、次のような方法があります。 (未テスト)

users 
    uid_0 
    is_admin:true //your uid 
    uid_1 
    is_admin:false 

と$ AUIDに

rules 
    ".read": "root.child('users').child(auth.uid).child('is_admin').val() == true" 
    ".write": "root.child('users').child(auth.uid).child('is_admin').val() == true" 
+0

ありがとうございました。 – Ahmed

関連する問題