Estoy refactorizando mi código de Firebase para admitir la versión modular de Firebase.
Después de refactorizar la función "arrayRemove", noté que comenzó a tardar mucho en ejecutarse. Algo como 1 minuto. En v8, eso fue alrededor de 1 segundo
Aquí está mi código:
const userRef = doc(db, 'users', userId) try { await updateDoc(userRef, { items: arrayRemove(itemId), }) console.log('REMOVED') } catch (error) { console.log(error) }La ejecución de este código toma alrededor de un minuto. La misma acción con los mismos datos en el mismo entorno para la versión anterior tarda aproximadamente un segundo. El resto de funciones funciona rápido.
Versión de base de fuego: 9.6.1
¿Alguna idea de por qué tarda tanto y cómo hacerlo más rápido?
Después de leer el artículo " Mejores prácticas: Arreglos en Firebase "
Encontré esa práctica:
para eliminar claves, guardamos toda la matriz en lugar de usar .remove()
Entonces... eliminé el elemento en mi código, luego actualicé la matriz y ¡me tomó menos de un segundo!
// removing item I need to remove at my local array const updArr = arr( (item) => item !== itemId ) const userRef = doc(db, 'collection', 'id') // updating array await updateDoc(userRef, { gifts: updArr, })// pd Obviamente, hay algún error en la función arrayRemove, pero en realidad no tenemos que usar esa función 🤫