Пакетный запрос на обновление в Firestore у меня не работает - PullRequest
0 голосов
/ 12 января 2019

здесь у меня есть код для обновления моей базы данных пожарного депо здесь 'm' - это список идентификаторов документов, а 'a' - это список чисел, а 'b' - это список логических значений, вся длина списков так же.

Если приведенный ниже метод неверен, приведите пример обновления 50 документов в одной партии.

void onpressed() async{
                alert('updating');
                WriteBatch batch= Firestore.instance.batch();
                int i=0;
                while(b[i]){

                 batch.updateData(Firestore.instance.collection("allstu").document("17csea").collection("17csea").document(m[i]), {"attendance": a[i]+1});
               i++;
                }

               await batch.commit().then((value){
                 alert("update successful");
                }
                ).catchError((err){
                  alert("Something went wrong try again");
                                      });
                                    }

Я не знаю, почему он не обновляется, у меня есть список из 50 идентификаторов документов, и я пытаюсь обновить только некоторые документы в списке (выбранном пользователем). Это обновление с циклом, проверяющим кодировку при использовании B [i], здесь B - список логических значений, так что в batch.ausume a [i добавляются только восстановленные элементы. ] +1 - целое число

Если вышеуказанный метод неверен, приведите пример обновления 50 документов в одной партии.

1 Ответ

0 голосов
/ 12 января 2019

ох! Нет, приведенный выше код верен, но я использовал булеву кодировку в то время, когда, когда она ложна, полный цикл завершается, вместо этого замените условие логическим условием и используйте логическое условие внутри цикла while, который установит ur код `void onpressed () async {

                WriteBatch batch= Firestore.instance.batch();
                int i=0;
                while(i<m.length){
                  if(b[i]){
                 batch.updateData(Firestore.instance.collection("allstu").document("17csea").collection("17csea").document(m[i]), {"attendance": a[i]+1});
                print("success");}
                i++;
                }
              batch.commit().then((value){
                 print("erorrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr");
                 Navigator.of(context).pop();
                }
                ).catchError((err){
                  print(err);
                        Navigator.of(context).pop()   ;           });
                                    }` 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...