Ich habe eine Sammlung von Dokumenten. Jedes Dokument hat Kind uid
, die eine Referenz an den Besitzer ist. Exemplarische Dokument:Suche in den Dokumenten, die der Benutzer hat, um in firebase zu lesen
{
"uid": "slfjs092320i3jf023jf",
"content": "Example"
}
ich sie unter /documents
Sammlung speichern wollen und nur Benutzern erlauben, mit uid passend, sie zu speichern und abzurufen. Ich habe die folgenden Regeln erstellt:
Leider, wenn ich Dokumente des Benutzers abrufen möchte, erhalte ich die Berechtigung verweigert. So rufen Sie Dokumente ab, die ich verwende:
export default getUserDocuments =() => {
const userUid = firebase.auth().currentUser.uid;
return firebase.database()
.ref('/documents')
.orderByChild('uid')
.equalTo(userUid)
.once('value');
};
Wie kann ich Benutzerdokumente abfragen? Ich denke, die verweigerte Berechtigung bezieht sich auf Leseeinschränkungen, die für die Abfrage erforderlich sind.
Vielen Dank für Ihre Antwort. Was wäre der beste Weg, um diese Daten zu speichern? Angenommen, meine Dokumente haben auch eine Kategorie. Soll ich zwei Sammlungen erstellen? Ein namens 'usersDocuments' mit Struktur { $ uid: { Inhalt: "Beispiel" } } und der zweite' documentsWithCategories' mit Struktur { $ Kategorie: { document1tId: true, document2Id: wahr } } ? –
Normalerweise erhalten Sie für jeden Anwendungsfall, der von Ihrer aktuellen Struktur nicht erfüllt werden kann, eine Liste auf oberster Ebene. Diese Listen können entweder vollständige/teilweise Duplikate oder nur manuelle Indizes sein (wie in Ihrem Kommentar). –