Perché questa istantanea riceve ogni documento due volte? Svolazzare
Aug 15 2020
Ho qualcosa di semplice:
.snapshots()
.listen((snapshot) {
snapshot.documentChanges.forEach((doc) { // Loop every document
if (doc.type == DocumentChangeType.modified) { // If doc is modified
print(doc.document.documentID);
}
});
});
Ho in totale 2 documenti e ascolto la raccolta in cui sono archiviati quei documenti. Voglio solo il documentId di quello modificato ma ottengo questo:
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
Perché quattro volte? Se era 2 volte, prendilo perché ho un ciclo foreach.
Risposte
SrilalSachintha Aug 15 2020 at 18:49
Molto probabilmente quello che succede è che il tuo ciclo viene chiamato ogni volta che viene costruito lo Stato. stai ottenendo 4 perché il tuo stato viene ricostruito 2 volte per qualche motivo.
non posso dire molto senza vedere l'intero codice. ma al di sopra della ragione è il caso più comune.