このスナップショットがすべてのドキュメントを2回取得するのはなぜですか?フラッター
Aug 15 2020
私は簡単なものを持っています:
.snapshots()
.listen((snapshot) {
snapshot.documentChanges.forEach((doc) { // Loop every document
if (doc.type == DocumentChangeType.modified) { // If doc is modified
print(doc.document.documentID);
}
});
});
私は合計2つのドキュメントを持っており、それらのドキュメントが保存されているコレクションを聴いています。変更されたもののdocumentIdのみが必要ですが、これを取得します。
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
なぜ4回?foreachループがあるので、2回だった場合は取得します。
回答
SrilalSachintha Aug 15 2020 at 18:49
おそらく何が起こるかは、状態が構築されるたびに呼び出されるループです。何らかの理由で状態が2回再構築されたため、4を取得しています。
コード全体を見ずに多くを語ることはできません。しかし、上記の理由が最も一般的なケースです。