我正在開發一個React項目,在這個項目中,我想要列出已登入使用者的文件。結構如下,我想要讀取的文檔位於集合中。
資料庫結構如下:
users(集合) -> user(文檔) -> repos(集合) -> repo(文檔) -> files(集合) -> files(文檔)
我想要讀取的是repo(文檔)。 (它還有一些其他字段)。
這是我嘗試的程式碼:
const userRef = doc(db, "users", userId) const repoRef = collection(userRef, "repos") const querySnapshot = await getDocs(repoRef); querySnapshot.forEach((doc) => { console.log(doc.id, " => ", doc.data()); }
錯誤訊息:
FirebaseError: 期望的類型是 'DocumentReference',但實際上是:一個自訂的CollectionReference物件
P粉4183516922024-03-23 09:41:25
如果您只想查詢一個文檔,則需要指定您的倉庫文檔 ID:
import { doc, getDoc } from "firebase/firestore" const docRef = doc(db, `users/${userId}/repos/${repoDocId}`); const docSnapshot = await getDoc(docRef); console.log("repo doc data:", docSnapshot.data())
如果您想查詢所有倉庫,則需要查詢集合:
import { collection, query, where, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs( query(collection(db, `users/${userId}/repos`)) ) querySnapshot.forEach((doc) => { console.log(doc.id, " => ", doc.data()) });
您可以在此處找到更多相關資訊。