Estoy integrando firebase con React por primera vez y solo estoy siguiendo la documentación, este es el código proporcionado en la sección getStarted de firebase cloud firestore getStarted :
pero cuando he intentado copiar el mismo código me da error de TypeError: querySnapshot.forEach is not a function
Básicamente estoy tratando de obtener los datos de una colección, documento.
aquí está el código que he copiado:
import React, { useState, useEffect, useRef } from "react"; import { db } from "./firebase.config.js"; import * as firestore from "firebase/firestore"; export default function App() { const addEntry = () => { try { const docRef = firestore.addDoc(firestore.collection(db, "users"), { first: "Alan", middle: "Mathison", last: "Turing", born: 1912, }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); } }; const querySnapshot = firestore.getDocs(firestore.collection(db, "users")); console.log(querySnapshot); querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); return ( <div> <button onClick={addEntry}>add</button> </div> ); }como puedo solucionar este error
getDocs() devuelve una promesa y es posible que no se haya resuelto cuando intenta leer los documentos. Intente refactorizar el código como se muestra a continuación:
firestore.getDocs(firestore.collection(db, "users")).then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); }); También puede importar getDocs() en lugar de usar espacios de nombres como V8 SDK:
import { getDocs } from "firebase/firestore";