Maison > Questions et réponses > le corps du texte
P粉2657249302023-08-25 19:54:35
En fait, comme indiqué dans la documentation du SDK Firestore JS, il n'est pas possible de récupérer la liste des collections à l'aide des bibliothèques client mobile/web.
Cela s'applique non seulement à la collection racine de la base de données Firestore, mais également aux sous-collections de documents Firestore.Cependant, comme vous l'avez mentionné dans votre question,
il est possible d'utiliser l'API client Cloud Firestore Node.js. Ainsi, vous pouvez utiliser une fonction Cloud pour répertorier une collection de bases de données Firestore et appeler cette fonction cloud depuis le frontend.
Puisque vous allez appeler cette fonction cloud depuis votre application, nous utilisons laCallable Cloud Function .
Code de fonction Cloudconst functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.getCollections = functions.https.onCall(async (data, context) => { const collections = await admin.firestore().listCollections(); const collectionIds = collections.map(col => col.id); return { collections: collectionIds }; });
Documentation de la fonction Cloud d'Angularfire.
import { Component } from '@angular/core'; import { AngularFireFunctions } from '@angular/fire/functions'; @Component({ selector: 'app-root', template: `{ data$ | async }` }) export class AppComponent { constructor(private fns: AngularFireFunctions) { const callable = fns.httpsCallable('getCollections'); this.data$ = callable({ .... }); } }
article suivant sur la façon de lister toutes les sous-collections d'un document Cloud Firestore à l'aide du SDK JS. (Avertissement : je suis l'auteur)