firestore transaction.update的异常行为

时间:2019-02-25 17:15:04

标签: dart flutter google-cloud-firestore

我尝试在for循环中多次更新。

//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);
          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()
              );
            });
          }
        }
      }
    }
  }
}

该函数每次都被调用,但仅更新一次。我不知道如何解决这个问题。你能帮我吗?

0 个答案:

没有答案