Bisher (alle können nur Besitzer lesen, aber bearbeiten) Ich habe mit dieser KonfigurationFirebase Echtzeit-Datenbank Regeln
{
"rules": {
"items": {
".read" : true,
"$uid": {
".read" : true,
".write": "auth != null && auth.uid == $uid"
}
}
}
}
Validierung und andere weggelassen Regeln Verzeichnisse. /Artikel/user1/item1 /Artikel/user2/item1
Alle Artikel Verzeichnis und alle Benutzer Artikel lesen können (keine privaten Elemente)
Was brauche ich?
flache Anordnung von Elementen
"items" : {
"item1": {},
"item2": {}
}
mit userId als Eigentum
"item1" : {
"uid": "userId"
}
Nur Benutzer erstellt Element kann es bearbeiten/löschen, aber alle können es sehen.
Ich dachte über Doppel Artikel in anderem Verzeichnis wie
"public_items": {
"item1": {},
"item2": {}
}
"items": {
"userId": {
"item1": {},
"item2": {},
}
}
Aber es scheint, als ob nicht eine gute Idee.
Regeln werden atomar angewendet. Das bedeutet, dass ein Lese- oder Schreibvorgang sofort fehlschlägt, wenn an dieser Position keine Regel oder an einem übergeordneten Ort vorhanden ist, der Zugriff gewährt. Selbst wenn jeder betroffene untergeordnete Pfad verfügbar ist, schlägt das Lesen am übergeordneten Speicherort fehl vollständig. https://firebase.google.com/docs/database/security/securing-data#read_and_write_rules_cascade
wenn Regeln nicht für jedes Element angewendet werden, wie Artikel-Verzeichnis mit verschiedenen Eigentümern zu bauen?