Heim > Web-Frontend > js-Tutorial > Wie kann ich eine Liste der Untersammlungsnamen in Cloud Firestore abrufen?

Wie kann ich eine Liste der Untersammlungsnamen in Cloud Firestore abrufen?

Susan Sarandon
Freigeben: 2024-11-29 21:07:11
Original
720 Leute haben es durchsucht

How Can I Retrieve a List of Subcollection Names in Cloud Firestore?

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()) )
  })
Nach dem Login kopieren

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);
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage