Я пытаюсь обновить больше чем один элемент в моей базе данных пожарного магазина.но если я проверю больше, чем один, это имеет неправильное поведение.иногда это работает, иногда один или два элемента обновляются, а иногда это приводит к сбою приложения.
Как я могу это исправить?
Тест является глобальным AsyncSnapshot:
aendereFeld() async {
CollectionReference collectionReference = Firestore.instance.collection("Benutzer").document("Anton").collection("Einkaufsliste").reference();
QuerySnapshot querySnapshot = await collectionReference.getDocuments();
//Welches Produkt wurde eingekauft
for(int i = 0; i < Test.data.produkte.length; i++){
//In welchem Dokument
for (int j = 0; j < querySnapshot.documents.length; j++){
ProduktList produkte = ProduktList.fromJson(querySnapshot.documents[j].data);
//Welches produkt aus akt. Dokument
for (int k = 0; k < produkte.produkte.length; k++){
if(Test.data.produkte[i].isChecked){
if(Test.data.produkte[i].name == produkte.produkte[k].name){
produkte.produkte[k].anzahl = 0;
produkte.produkte[k].isChecked = false;
Firestore.instance.runTransaction((transaction) async{
await transaction.update(
Firestore.instance.collection("Benutzer").document("Anton").collection("Einkaufsliste").document(
querySnapshot.documents[j].documentID),
produkte.toProdukteJson()
);
});
print("Name: " + Test.data.produkte[i].name);
print("Break 1");
break;
}
}else{
if(Test.data.produkte[i].name == produkte.produkte[k].name){
if(Test.data.produkte[i].anzahl != produkte.produkte[k].anzahl){
produkte.produkte[k].anzahl = Test.data.produkte[i].anzahl;
Firestore.instance.runTransaction((transaction) async{
await transaction.update(
Firestore.instance.collection("Benutzer").document("Anton").collection("Einkaufsliste").document(
querySnapshot.documents[j].documentID),
produkte.toProdukteJson()
);
});
}
}
}
}
print("Break 2");
break;
}
}
}
Можете ли вы помочь мне `?