Pourquoi cet instantané obtient-il chaque document deux fois ? Battement
Aug 15 2020
J'ai quelque chose de simple :
.snapshots()
.listen((snapshot) {
snapshot.documentChanges.forEach((doc) { // Loop every document
if (doc.type == DocumentChangeType.modified) { // If doc is modified
print(doc.document.documentID);
}
});
});
J'ai au total 2 documents et j'écoute la collection où ces documents sont stockés. Je veux seulement le documentId de celui qui a été modifié mais j'obtiens ceci:
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
Pourquoi quatre fois ? Si c'était 2 fois, c'est parce que j'ai une boucle foreach.
Réponses
SrilalSachintha Aug 15 2020 at 18:49
Très probablement, ce qui se passe est votre boucle appelée chaque fois que l'état est en cours de construction. vous obtenez 4 parce que votre état est reconstruit 2 fois pour une raison quelconque.
Je ne peux pas dire grand chose sans voir tout le code. mais au-dessus de la raison est le cas le plus courant.