試著列出 Firestore 資料庫的集合
P粉546179835
P粉546179835 2023-08-24 23:19:00
0
1
467

我想列出 Ionic4 應用程式內的 Firestore 資料庫集合,因此我使用 listCollection 部分中的文檔,因此我在程式碼中應用了範例程式碼:

this.afs.firestore.listCollections().then(collections => { for (let collection of collections) { console.log(`Found collection with id: ${collection.id}`); } });

這是我的建構子:

constructor(private router: Router, private afs: AngularFirestore, private fireauth: AngularFireAuth) { }

我收到此錯誤:錯誤 TS2339:「Firestore」類型上不存在屬性「listCollections」。

我無法使用屬性 listCollections,因為它位於線上文件...

P粉546179835
P粉546179835

全部回覆 (1)
P粉265724930

實際上,如 Firestore JS SDK文件中所述,使用行動/網路用戶端程式庫無法檢索集合清單

這不僅適用於 Firestore 資料庫的根集合,也適用於 Firestore 文件的子集合。

但是,如您在問題中提到的,可以使用Cloud Firestore Node.js 用戶端 API。因此,您可以使用 Cloud Function 來列出 Firestore 資料庫的集合並從前端呼叫此雲端函數。

由於您將從應用程式中呼叫此雲端函數,因此我們使用可呼叫雲函數.

雲端函數程式碼

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

前端程式碼

要從 Angular 應用程式呼叫此可呼叫雲函數,只需遵循 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({ .... }); } }

請注意,此方法的靈感來自以下文章,介紹如何使用 JS SDK 列出 Cloud Firestore 文件的所有子集合。(免責聲明:我是作者)

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!