Maison  >  Questions et réponses  >  le corps du texte

Récupérer des documents dans une collection imbriquée

Je travaille sur un projet React dans lequel je souhaite lister les documents des utilisateurs connectés. La structure est la suivante, le document que je souhaite lire est dans la collection.

La structure de la base de données est la suivante :

utilisateurs (collection) -> utilisateur (documents) -> dépôts (collection) -> Ce que je veux lire, c'est le repo (documentation). (Il a également d'autres champs).

Voici le code que j'ai essayé :

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

Message d'erreur :

FirebaseError : le type attendu est 'DocumentReference', mais en fait : un objet CollectionReference personnalisé

P粉682987577P粉682987577232 Il y a quelques jours1069

répondre à tous(1)je répondrai

  • P粉418351692

    P粉4183516922024-03-23 09:41:25

    Si vous souhaitez interroger un seul document, vous devez spécifier votre identifiant de document d'entrepôt :

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

    Si vous souhaitez interroger tous les entrepôts, vous devez interroger la collection :

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

    Vous pouvez trouver plus d'informations à ce sujet ici.

    répondre
    0
  • Annulerrépondre