Maison > Questions et réponses > le corps du texte
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粉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.