我尝试更新Firestore数据库中的一项以上。但是,如果我再检查一个,它就会有不正常的行为。有时可以正常工作,有时可以更新一两个项目,有时可以使应用程序崩溃。
我该如何解决?
测试是全局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;
}
}
}
你能帮我吗?