Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

260
Vistas
Los componentes se procesan antes de que los datos se obtengan de firestore

Ok, soy un poco nuevo para reaccionar y leer muchas preguntas sobre mi problema, pero parece que no puedo encontrar una solución.

Estoy tratando de obtener algunos datos de Firestore (de colecciones, subcolecciones, etc.), insertarlos en una lista, aplicar algunos estados de uso y luego representar la lista con un mapa en un componente.

Mi problema es que cuando se procesan los componentes, la lista está vacía y no se muestra nada. Si guardo algo en mi código, aparece el componente, es decir, la lista se configura después de que se realiza la primera representación (al menos eso es lo que descubrí)

No sé cómo solucionar este problema. Cualquier ayuda es realmente apreciada.

Aquí está mi código:

 const fetchData = async () => { setLoading(true); //get current user profile data from user document const docRef = doc(db, 'users', userUid); const docSnapProfile = await getDoc(docRef); if (docSnapProfile.exists()) { setBio(docSnapProfile.data().bio); setLevel(parseInt(docSnapProfile.data().level)); setUsername(docSnapProfile.data().name); setProfileImage(docSnapProfile.data().ProfileImage); } //get recived reviews for the current user const subColRef = query( collection(db, 'reviews', userUid, 'recivedRatings'), orderBy('postTime', 'asc'), ); const querySnapshot = await getDocs(subColRef); let list = []; let name = ''; let url = ''; await querySnapshot.forEach(async doc1 => { //get profile picture and name for each user that gave a rating to the current user let id = doc1.id; const docRef = doc(db, 'users', id); const docSnapProfile = await getDoc(docRef); if (docSnapProfile.exists()) { name = docSnapProfile.data().name; url = docSnapProfile.data().ProfileImage; } const {postTime, rating} = doc1.data(); const date = moment(postTime.toDate()).fromNow(); list.push({ id: doc1.id, review_userPhotoURL: name, review_userName: url, review_userRating: rating, review_userUid: doc1.id, review_time: date, }); }); //!!this is the list with the problem setReviews(list); setLoading(false); }; useEffect(() => { const unsubscribe = navigation.addListener('focus', () => { fetchData(); }); return unsubscribe; }, [navigation]);

Sé que mi código es un poco complicado, pero espero que alguien pueda orientarme en la dirección correcta.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda