digamos que quiero actualizar una serie de documentos, lo estoy haciendo usando forEach de esta manera.
students.forEach(async (name) => { const docRef = doc(db, "students", name); await updateDoc(docRef, { school: "Some School", }); });Y funciona bien, pero me preguntaba si eso es malo para enviar demasiadas solicitudes o algo así. ¿Hay otra forma mejor/más inteligente de hacerlo?
Por lo general, recomiendo no usar await en un escenario en el que está usando updateDoc en una secuencia de documentos, ya que en realidad es más rápido dejar que las actualizaciones se ejecuten en paralelo. Para obtener más información, consulte ¿Cuál es la forma más rápida de escribir muchos documentos en Firestore?
Pero el await aquí es inofensivo, ya que usar await en forEach no tiene impacto en las otras operaciones en ese mismo forEach . Para obtener más información sobre esto, consulte: Usar async/await con un bucle forEach Sin embargo, si tuviera que usar un bucle for of , asegúrese de eliminar la await para mejorar el rendimiento.
No hay nada particularmente "malo" en esto dado lo que ha compartido, a menos que también esté observando algún comportamiento que no le gusta.
Si su intención es actualizar todos los documentos de forma atómica (hasta un límite de 500 en un lote), para que cualquier falla o interrupción no deje el conjunto de documentos en un estado inconsistente, es mejor que use una escritura por lotes . en cambio. Pero eso no necesariamente le dará un mejor rendimiento u otro comportamiento de tiempo de ejecución mejorado.