Saltar al contenido

Firestore actualiza todos los documentos en colecciones

Hemos estado indagando por diferentes espacios para así brindarte la respuesta a tu duda, si tienes alguna inquietud déjanos tu pregunta y te responderemos con mucho gusto, porque estamos para ayudarte.

Solución:

Puede obtener todos los documentos de la colección, obtener sus identificaciones y realizar actualizaciones utilizando esas identificaciones:

db.collection("cities").get().then(function(querySnapshot) 
    querySnapshot.forEach(function(doc) 
        doc.ref.update(
            capital: true
        );
    );
);

Por alguna extraña razón, la respuesta aceptada ( thehamzarocks ) no me funcionaba, ninguno de los documentos se actualizó. Tal vez haya un error en AngularFire2. De todos modos, decidí recorrer los documentos array de QuerySnapshot en lugar de usar su método forEach y agregue cada actualización a una cola por lotes. Las operaciones masivas por lotes también son más eficientes que enviar una nueva solicitud de actualización para cada operación de actualización.

resetScore(): Promise 
  return this.usersCollectionRef.ref.get().then(resp => 
    console.log(resp.docs)
    let batch = this.afs.firestore.batch();

    resp.docs.forEach(userDocRef => 
      batch.update(userDocRef.ref, 'score': 0, 'leadsWithSalesWin': 0, 'leadsReported': 0);
    )
    batch.commit().catch(err => console.error(err));
  ).catch(error => console.error(error))

Firestore no tiene la capacidad de actualizar documentos de forma masiva sin conocer sus ID. Tendrá que conocer de alguna manera la identificación del documento de cada documento para actualizar (realizar una consulta o hacer lotes de consultas) y actualizar cada uno individualmente.

Valoraciones y reseñas

Ten en cuenta difundir este tutorial si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *