Tại sao ảnh chụp nhanh này nhận được mọi tài liệu hai lần? Chớp cánh
Tôi có một cái gì đó đơn giản:
.snapshots()
.listen((snapshot) {
snapshot.documentChanges.forEach((doc) { // Loop every document
if (doc.type == DocumentChangeType.modified) { // If doc is modified
print(doc.document.documentID);
}
});
});
Tôi có tổng cộng 2 tài liệu và tôi nghe bộ sưu tập nơi những tài liệu đó được lưu trữ. Tôi chỉ muốn documentId của cái đã thay đổi nhưng tôi nhận được cái này:
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
Tại sao bốn lần? Nếu nó là 2 lần là nhận được nó vì tôi có một vòng lặp foreach.
Trả lời
SrilalSachintha
Hầu hết những gì xảy ra là vòng lặp của bạn được gọi mỗi khi Trạng thái đang được xây dựng. bạn đang nhận được 4 vì trạng thái của bạn được xây dựng lại 2 lần do một số lý do.
không thể nói nhiều nếu không nhìn thấy toàn bộ mã. nhưng lý do trên là trường hợp phổ biến nhất.