2017-10-12 10 views
0

私のfirebaseデータベースのルールを乱用して、認証なしのユーザーが自分のデータベース内の特定の子供を編集できるようにしようとしましたが、それを理解できないようです。 (5555 子供1人だけの読み書きを許可する

enter image description here

は、だから私は認証なしで、ユーザーがVIDEOIDを編集できるようにしようとしているが、それだけでなく、私は部屋のIDを無視するルールが必要になります。ここでは

は、データベース構造でありますこの例では、 部屋/(roomid)/ videoIDの読み取りと編集のみが可能です。

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

答えて

0

Firebaseデータベースのルールでは変数が使用でき、異なる深さでは異なるルールを設定できます。

あなたのケースでは、以下のルールは、(認証されているかどうかにかかわらず)すべてのユーザーが/rooms/$roomid/videoIDにアクセスし、認証されたユーザーのみ/rooms/ツリーにアクセスすることを許可します。

{ 
    "rules": { 
    "rooms": { 
     ".read": "auth != null", 
     ".write": "auth != null", 
     "$roomid": { 
     "videoID": { 
      ".read": "true", 
      ".write": "true", 
     } 
     } 
    } 
    } 
} 

(Firebaseデータベースコンソールの[ルール]タブからアクセス可能)Firebaseルールシミュレータは、公開する前にテストするルールのために有用である: simulator

0

たぶん、このような何か:それは真偽を持つユーザーがvideoIDの横に別のフィールドを編集することができます

{ 
    "rules": { 
    ".read": true, 
    ".write": "auth != null", 
    "rooms": { 
     "$roomId": { 
      "videoID": { 
      ".write": true 
      } 
     } 
    } 
    } 
} 

。ルールは、それが子供のルールを通過しませんtrueを設定するとき

{ 
    "rules": { 
    ".read": true, 
    ".write": false, 
    "rooms": { 
     "$roomId": { 
      "videoID": { 
      ".write": true 
      } 
     } 
    } 
    } 
} 

は、覚えておいて、しかし、それはfalseを設定した場合:

しかし、あなたもauthentificatedユーザーをしたい場合、また、唯一のvideoIDを編集することができ、その後、ルールがありますそれは子供のルールを検査し続けます。

関連する問題