Récupérer des documents dans une collection imbriquée
P粉682987577
P粉682987577 2024-03-22 13:50:45
0
1
1104

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粉682987577
P粉682987577

répondre à tous(1)
P粉418351692

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal