![](/img/trans.png)
[英]Firebase Cloud function not updating data in Firestore database
[英]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.