Rumah > Soal Jawab > teks badan
P粉2657249302023-08-25 19:54:35
Malah, seperti yang dinyatakan dalam dokumentasi Firestore JS SDK , tidak mungkin untuk mendapatkan semula senarai koleksi menggunakan perpustakaan klien mudah alih/web.
Ini terpakai bukan sahaja pada koleksi akar pangkalan data Firestore, tetapi juga pada subkoleksi dokumen Firestore.
Walau bagaimanapun, seperti yang anda nyatakan dalam soalan anda, adalah mungkin menggunakan Cloud Firestore Node.js API pelanggan. Jadi, anda boleh menggunakan Fungsi Awan untuk menyenaraikan koleksi pangkalan data Firestore dan memanggil fungsi awan ini dari bahagian hadapan.
Memandangkan anda akan memanggil fungsi awan ini daripada apl anda, kami menggunakan Fungsi Awan Boleh Panggil .
const 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 }; });
Untuk memanggil fungsi awan boleh panggil ini daripada aplikasi Angular anda, ikut sahaja dokumentasi Angularfire Cloud Function.
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({ .... }); } }
Sila ambil perhatian bahawa kaedah ini diilhamkan oleh artikel berikut tentang cara menyenaraikan semua subkoleksi dokumen Cloud Firestore menggunakan SDK JS. (Penafian: Saya pengarang)