¿Por qué esta instantánea obtiene todos los documentos dos veces? Aleteo

Aug 15 2020

tengo algo sencillo:

.snapshots()
  .listen((snapshot) {
      snapshot.documentChanges.forEach((doc) {       // Loop every document
        if (doc.type == DocumentChangeType.modified) { // If doc is modified
          print(doc.document.documentID);
        }
      });
  });

Tengo en total 2 documentos y escucho la colección donde se almacenan esos documentos. Solo quiero el ID de documento del modificado, pero obtengo esto:

I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew

¿Por qué cuatro veces? Si fue 2 veces, es obtenerlo porque tengo un bucle foreach.

Respuestas

SrilalSachintha Aug 15 2020 at 18:49

Lo más probable es que lo que sucede es que se llama a su ciclo cada vez que se construye el Estado. obtienes 4 porque tu estado se reconstruye 2 veces por alguna razón.

No puedo decir mucho sin ver el código completo. pero por encima de la razón es el caso más común.