2017-03-06 9 views
0

シンプルな引用ツール。価格/価格を「ディーラー」のみに表示したい。この構造は適切であるか?セキュアノードのデータ構造

私は(価格へのアクセスを制限する)builds\$key\priceノード上のより具体的なルールを置く場合、builds\-Ke_yHGa-c-acXF5_J9B.onceを読み取ろうとする非ディーラーは失敗するだろうと思われます。

したがって、別のpricesルートノードを構築する必要がありますか?私はそう思う...?

、その後、事前に

{ 
    "...some path...": { 
    ".read": "root.child("dealers/" + auth.uid).val() === true" 
    } 
} 

感謝。

{ 
    "builds" : { 
    "-Ke_yHGa-c-acXF5_J9B" : { 
     "created" : 1488843260381, 
     "last modified" : false, 
     "model" : "1VR", 
     "price" : "1999.00", 
     "status" : "saved", 
     "title" : "test build", 
     "uid" : "q5b9AJgWATdbNF5y2JZctitx1Qx2" 
    } 
    }, 
    "dealers" : { 
    "DsZ1wSUOmsceMKqCKLZwhpg1vjA3" : true, 
    "R9s2qY6p87cas750wJz5wAB3sfJ3" : false, 
    "q5b9AJgWATdbNF5y2JZctitx1Qx2" : true 
    }, 
    "users" : { 
    "DsZ1wSUOmsceMKqCKLZwhpg1vjC2" : { 
     "displayName" : "Eric Doe", 
     "photoUrl" : "http://abs.twimg.com/sticky/default_profile_images/default_profile_3_normal.png", 
     "provider" : "twitter.com" 
    }, 
    "R9s2qY6p87cas750wJz5wAB3sfk5" : { 
     "displayName" : "Ron Royston", 
     "email" : "[email protected]", 
     "provider" : "password" 
    }, 
    "q5b9AJgWATdbNF5y2JZctitx1Qx2" : { 
     "displayName" : "Ron Royston", 
     "photoUrl" : "http://pbs.twimg.com/profile_images/809222728456675365/C-rlXjaN_normal.jpg", 
     "provider" : "twitter.com" 
    } 
    } 
} 

答えて

1

ファイア・ベースのセキュリティ・ルールでは、完全なノードにアクセスできます。ノードへのアクセスを許可すると、より低いレベルでそのアクセス権を奪うことはできません。したがって、価格以外のすべてのプロパティへのユーザーアクセスを許可するルールを設定することはできません。

価格にそのノードの他の部分と異なるセキュリティルールが必要な場合は、実際にノード/ブランチから価格を引き出す必要があります。

同様のシナリオについては、私の答えはこちらをご覧ください:How to create public/private user profile with Firebase security rules?

+0

ご確認いただきありがとうございます。それを理解するのに約3時間かかりました。私は実際にそれについて考える必要がありました。他の答えを今見て... –