Mengapa snapshot ini mendapatkan setiap dokumen dua kali? Berdebar
Saya punya sesuatu yang sederhana:
.snapshots()
.listen((snapshot) {
snapshot.documentChanges.forEach((doc) { // Loop every document
if (doc.type == DocumentChangeType.modified) { // If doc is modified
print(doc.document.documentID);
}
});
});
Saya memiliki total 2 dokumen dan saya mendengarkan koleksi di mana dokumen-dokumen itu disimpan. Saya hanya ingin documentId dari yang diubah tetapi saya mendapatkan ini:
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
Mengapa empat kali? Jika sudah 2 kali mendapatkannya karena saya memiliki loop foreach.
Jawaban
SrilalSachintha
Kemungkinan besar yang terjadi adalah loop Anda dipanggil setiap kali State sedang dibangun. Anda mendapatkan 4 karena status Anda dibangun ulang 2 kali karena beberapa alasan.
tidak bisa berkata banyak tanpa melihat keseluruhan kode. tetapi alasan di atas adalah kasus yang paling umum.
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'