Wenn Sie bereits wissen, ist admin, in Ihrer Frage user123. Dann sollten Sie Datenbankregel wie sein
"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"
}
}
Falls Sie, was die Regel dynamischer zu machen, dann können Sie
"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"
}
}
tun können Sie weitere Informationen von hier https://firebase.google.com/docs/reference/security/database/
Alternativ Sie kann Ihr Eintragsmodell zu benutzerspezifischen
{
"entities" :{
"user465": {
"entry456": {
"text" : "Some sample text"
}
}
}
}
ändern In diesem Fall schreiben Sie Ihre Regel
"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"
}
}
Die Regel ist dynamisch. Mit dieser Regel kann der Benutzer, der den Eintrag erstellt hat, diesen nicht lesen. Beispiel: 'user123' sollte in der Lage sein, 'entry456' zu lesen. – npk
@Nameer sehen Sie die aktualisierte Antwort, Sie können auch Ihr Einreichungsmodell ändern. – bash
Aber Admin kann nicht alle Einträge durchlaufen, es zeigt "Erlaubnis verweigert" Fehler. – npk