Zugriff auf Untersammlungsnamen in Cloud Firestore
Das Auflisten von Untersammlungen in einem Dokument ist eine häufige Anforderung für die Organisation und Navigation in Daten, die in der hierarchischen Struktur von Cloud Firestore gespeichert sind . In den Client-SDKs (einschließlich Web, iOS und Android) wird das Abrufen einer vollständigen Liste von Untersammlungen jedoch nicht direkt unterstützt.
Clientseitige Einschränkungen:
Wie in der offiziellen Dokumentation angegeben, ist „das Abrufen einer Sammlungsliste mit den Mobil-/Web-Client-Bibliotheken nicht möglich.“ Diese Entwurfswahl zielt darauf ab, die Sicherheit zu erhöhen, indem der Zugriff auf Untersammlungsnamen eingeschränkt wird, vor allem für Verwaltungsaufgaben, die in vertrauenswürdigen Serverumgebungen ausgeführt werden.
In den Client-SDKs werden beim Zugriff auf ein Dokument nur die Feldnamen und -werte zurückgegeben, ausgenommen etwaige Untersammlungsnamen . Der folgende Codeausschnitt protokolliert beispielsweise nur die Feldnamen, nicht jedoch die Namen der Untersammlungen:
rootRef.doc('aDocument').get() .then(doc => { // only logs [ "someField", "anotherField" ], no collections console.log( Object.keys(doc.data()) ) })
Serverseitige Lösung:
Allerdings auf dem Server -Side-SDKs wie Node.js, der Zugriff auf Untersammlungsnamen wird unterstützt. Für Node.js bietet die ListCollectionIds-Methode eine Möglichkeit, die Namen von Untersammlungen in einem Dokument abzurufen.
var firestore = require('firestore.v1beta1'); var client = firestore.v1beta1({ // optional auth parameters. }); // Iterate over all elements. var formattedParent = client.anyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]"); client.listCollectionIds({parent: formattedParent}).then(function(responses) { var resources = responses[0]; for (var i = 0; i < resources.length; ++i) { // doThingsWith(resources[i]) } }) .catch(function(err) { console.error(err); });
Diese Methode gibt ein Array von Zeichenfolgen zurück, die die Namen der Untersammlungen innerhalb des angegebenen Dokuments darstellen.
Alternativer Ansatz:
Wenn der direkte Zugriff auf Untersammlungsnamen in einem von entscheidender Bedeutung ist In einer clientseitigen Umgebung sollten Sie Ihre Daten so umstrukturieren, dass Untersammlungsnamen aus der Dokumentstruktur abgeleitet oder logisch abgeleitet werden können. Mit diesem Ansatz können Sie die Einschränkung elegant umgehen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste der Untersammlungsnamen in Cloud Firestore abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!