簡體   English   中英

類型錯誤:snap.data 不是 function - Firestore 數據庫

[英]TypeError: snap.data is not a function - Firestore Database

我在 React 中有以下助手 function:

import { getAuth } from 'firebase/auth';
import { initializeApp } from 'firebase/app';
import { getFirestore, collection, doc, addDoc, getDoc, setDoc, getDocs, query, where } from 'firebase/firestore';
import { getStorage, ref } from 'firebase/storage';
import { FIREBASE_API } from '../config';

const firebaseApp = initializeApp(FIREBASE_API);
const auth = getAuth(firebaseApp);
const db = getFirestore(firebaseApp);
const storage = getStorage();

export function getDocuments(col) {
    const colRef = collection(db, col);
    const q = query(colRef, where('uid', '==', auth.currentUser.uid));

    getDocs(q).then((snap) => {
        console.log(snap);
        return snap?.data();
    });
    return [];
}

我試圖返回給定集合的文檔的位置。 這是我的控制台 output:

在此處輸入圖像描述

我想弄清楚為什么我無法使用data()方法。它是一個 Firestore 數據庫(不是實時的)。

難道我做錯了什么?

getDocs()返回一個QuerySnapshot (包含與您的查詢匹配的所有文檔的數據)而不是DocumentSnapshot 它有一個docs屬性,它是一個QueryDocumentSnapshot數組,您可以遍歷它並讀取收到的所有文檔的數據:

export function getDocuments(col) {
    const colRef = collection(db, col);
    const q = query(colRef, where('uid', '==', auth.currentUser.uid));

    return getDocs(q).then((snap) => {
        const data = snap.docs.map((d) => ({ id: d.id, ...d.data() }))
        console.log(data);
        return data;
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM