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

227
Vistas
Obtenga Firebase Collection en una matriz simple

Estoy tratando de hacer reaccionar todos los elementos de una colección en Firebase en una matriz para poder usarlos más tarde en React.

Tengo esto actualmente:

 const retrievegear = firebase.firestore().collection('gear').get().then(querySnapshot => { querySnapshot.forEach(doc => { const check = doc.data().Name; console.log(check); }); });

Lo cual está bien: me muestra todos los nombres de los artículos en la colección de equipo. Pero lo quiero dentro de una matriz y solo quiero algunos de los campos de la colección.

Luego estoy usando esta matriz para completar las casillas de verificación, por lo que necesito que se declare const en algún lugar para que mi devolución pueda acceder a ella.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El método get() de Firestore es asíncrono y devuelve una Promesa, por lo que solo en la función de devolución de llamada que se pasa a then() se obtiene el resultado.

En consecuencia, debe hacer lo siguiente:

 const myArray = []; firebase.firestore().collection('gear').get().then(querySnapshot => { querySnapshot.forEach(doc => { const check = doc.data().Name; console.log(check); myArray.push(check); }); // Here do whatever you want with the myArray array which contains the data from the collection });

Si desea transformar este código en una función a la que puede llamar desde otros lugares de su código, haga lo siguiente (usamos async/await para mejorar la legibilidad):

 async function getGearData() { const myArray = []; const querySnapshot = await firebase.firestore().collection('gear').get(); querySnapshot.forEach(doc => { const check = doc.data().Name; console.log(check); myArray.push(check); }); return myArray; }

Tenga en cuenta que esta función es asíncrona , por lo que debe llamarla de la siguiente manera:

 getGearData() .then(gearData => { // Here and only here you get the value console.log(gearData); // .... })

Tenga en cuenta que también puede usar el método map() en la matriz devuelta por querySnapshot.docs .

about 4 years ago · Juan Pablo Isaza Denunciar
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