Ich habe eine Sammlung. Jedes Dokument hat einen Objektleser, der die Benutzer von Personen speichert, die Zugriff auf die Dokumente haben. Es könnte ein oder mehrere Benutzer sein, die ein Dokument Firestore Regeln Karte für Objekt
Feuerbasis Winkel meine Seite zeigen zugreifen kann
constructor(private afAuth: AngularFireAuth, private afs: AngularFirestore) {
this.afAuth.authState.subscribe(auth => {
this.users = afs.collection<User>('users', ref => ref.where('readers.' + auth.uid, '==', true)).valueChanges();
});
}
Wenn ich Benutzer die Regel all Lesen erlauben, ich verwende die richtigen Einträge
match /users/{userId=**} {
allow read, write;
}
Wenn ich die Regel hinzufügen, um mit uid zu filtern, bekomme ich den Fehler Fehlende oder unzureichende Berechtigungen.
match /users/{userId=**} {
allow read, write: if resource.data.readers[request.auth.uid] == true ||
resource.readers[request.auth.uid] == true;
}
Schätzen Sie jede Hilfe auf, was ich falsch für die Regeln gemacht habe. Vielen Dank im Voraus.
Ich glaube, Sie einen '.' innen' wenn resource.data.readers setzen müssen. [Anfrage .auth.uid] == true' wie folgt – Hareesh
Das wäre ein Syntaxfehler. – William
ok in den Dokumenten, die sie '$ (request.auth.uid)' verwendet haben, um den Wert zu erhalten. versuche 'if resource.data.readern [$ (request.auth.uid)] == true' – Hareesh