Cuba menyenaraikan koleksi pangkalan data Firestore
P粉546179835
P粉546179835 2023-08-24 23:19:00
0
1
512
<p>Saya ingin menyenaraikan koleksi pangkalan data Firestore dalam aplikasi Ionic4, jadi saya menggunakan dokumen daripada bahagian listCollection, jadi saya telah menggunakan kod sampel dalam kod saya: </p> <pre class="brush:php;toolbar:false;">this.afs.firestore.listCollections().then(collections => { untuk (biar koleksi koleksi) { console.log(`Terjumpa koleksi dengan id: ${collection.id}`); } });</pre> <p>Ini ialah pembina saya: </p> <pre class="brush:php;toolbar:false;">constructor(penghala peribadi: Router, afs peribadi: AngularFirestore, fireauth peribadi: AngularFireAuth) { }</pre> <p>Saya mendapat ralat ini: ralat TS2339: Harta 'listCollections' tidak wujud pada jenis 'Firestore'. </p> <p>Saya tidak boleh menggunakan senarai atributCollections kerana ia berada dalam dokumentasi dalam talian... </p>
P粉546179835
P粉546179835

membalas semua(1)
P粉265724930

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 .

Kod fungsi awan

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 };

});

Kod bahagian hadapan

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)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!