搜尋

首頁  >  問答  >  主體

在一個嵌套集合中檢索文檔

我正在開發一個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粉682987577P粉682987577275 天前1124

全部回覆(1)我來回復

  • P粉418351692

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

    您可以在此處找到更多相關資訊。

    回覆
    0
  • 取消回覆