Tenga el método a continuación que extrae los Id de la colección firebase y los empuja a una matriz, PERO convierte cada documento en una matriz. En otras palabras, si tengo 100 documentos en la colección, crea 100 matrices dentro de la matriz IDarray. Solo necesito una matriz para mantenerlo más eficiente. Quizás:)
db.collection('Customers') .orderBy('createdAt', 'asc') .get() .then((data) => { let IDarray = []; data.docs.forEach(doc =>{ IDarray.push(+doc.id); }); return [IDarray]; })Ciertamente puedo hacer que esto funcione, pero si alguien conoce una mejor manera para que el sistema no genere todas las matrices adicionales, se lo agradecería. (Historia de fondo: el IDarray se genera como int porque mis Id para la colección son una secuencia numérica) ¡Salud!
Prueba esto:
db .collection("Customers") .orderBy("createdAt", "asc") .get() .then((data) => { let IDarray = []; data.docs.forEach((doc) => { IDarray.push(+doc.id); }); return IDarray; });Funciona muy bien para mí.
O aquí hay una forma ES6-y de hacerlo:
db .collection("Customers") .orderBy("createdAt", "asc") .get() .then(({ docs }) => docs.map(({ id }) => +id));Parece que no necesita otro contenedor de matriz para el valor de retorno:
return IDarray;Observe que no hay llaves cuadradas. Simplemente devuelva la matriz tal como está.