あなたがすでにadminを知っている場合、あなたの質問user123。次にデータベースルールあなたは、あなたが
"entities": {
"$entityId":{
// you don't what others to see other to see teh data
".read": "root.child('users').child(auth.uid).child('isAdmin').val() == true || root.child('entities').child($entityId).child('uid').val() == auth.uid"
// any one who is logged in should write to the /entries node
".write": "auth.uid != null"
}
}
あなたはhttps://firebase.google.com/docs/reference/security/database/
また、ここから詳細情報を取得することができます行うことができますが、ルールがよりダイナミックにするためにどのような場合には
"entities": {
"$entryId":{
// you don't what others to see other to see teh data
".read": "auth.uid == 'user123'"
// any one who is logged in should write to the /entries node
".write": "auth.uid != null"
}
}
ようにする必要がありますあなたのエントリーモデルをユーザー特有のものに変更することができます
{
"entities" :{
"user465": {
"entry456": {
"text" : "Some sample text"
}
}
}
}
この場合、ルールを書いてください
"entities": {
"$userId":{
// you don't what others to see other to see teh data
".read": "root.child('users').child(auth.uid).child('isAdmin').val() == true || $userId == auth.uid"
// any one who is logged in should write to the /entries node
".write": "auth.uid == $userId"
}
}
ルールは動的です。このルールでは、エントリを作成したユーザーはそれを読み取ることができません。たとえば、 'user123'は 'entry456'を読み取ることができるはずです – npk
@Nameer更新された回答を参照して、エントリモデルも変更できます。 – bash
しかし、管理者はすべてのエントリをループすることはできません。「Permission Denied」エラーが表示されます。 – npk