Heim  >  Fragen und Antworten  >  Hauptteil

Rufen Sie Dokumente in einer verschachtelten Sammlung ab

Ich arbeite an einem React-Projekt, in dem ich die Dokumente angemeldeter Benutzer auflisten möchte. Die Struktur ist wie folgt: Das Dokument, das ich lesen möchte, befindet sich in der Sammlung.

Die Datenbankstruktur ist wie folgt:

Benutzer(Sammlung) -> Benutzer(Dokumente) -> Repo(Dokumente) -> Dateien(Dokumente)

Was ich lesen möchte, ist das Repo (Dokumentation). (Es gibt auch einige andere Felder).

Das ist der Code, den ich ausprobiert habe:

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

Fehlermeldung:

FirebaseError: Erwarteter Typ ist „DocumentReference“, aber tatsächlich: ein benutzerdefiniertes CollectionReference-Objekt

P粉682987577P粉682987577211 Tage vor1052

Antworte allen(1)Ich werde antworten

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

    您可以在此处找到更多相关信息。

    Antwort
    0
  • StornierenAntwort