Cuando hago console.log(docSnap) obtengo un error de firebase, mira en la imagen de abajo. He probado todas las soluciones pero ninguna funcionó.
useEffect(() => { if (folderId === null) { dispatch({ type: "UPDATE_FOLDER", payload: { folder: ROOT_FOLDER } }) } // otherwise fetch from database const getdocSnap = async () => { const docRef = doc(db, "folders", folderId); return await getDoc(docRef); } const docSnap = getdocSnap(); console.log(docSnap); if (docSnap.exists()) { dispatch({ type: "UPDATE_FOLDER", payload: { folder: { id: docSnap.id, ...docSnap.data() } } }) } else { console.log("No such document!"); dispatch({ type: "UPDATE_FOLDER", payload: { folder: ROOT_FOLDER } }) } }, [folderId])¿Cómo se resolvió el problema?
Respuesta: Creé una función asíncrona callFunc y pegué toda mi lógica dentro de ella y la llamé.
Prueba el siguiente código
useEffect(() => { if (folderId === null) { return dispatch({ type: "UPDATE_FOLDER", payload: { folder: ROOT_FOLDER } }) } // otherwise fetch from database const callFunc = async () => { const docRef = doc(db, "folders", folderId); const docSnap = await getDoc(docRef); if (docSnap.exists()) { dispatch({ type: "UPDATE_FOLDER", payload: { folder: { id: docSnap.id, ...docSnap.data() } } }) } else { console.log("No such document!"); dispatch({ type: "UPDATE_FOLDER", payload: { folder: ROOT_FOLDER } }) } } callFunc(); }, [folderId])