Как я могу обновить вложенный Список в Карте, который все вставлен в Список? Например. Список > - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь обновить или добавить в конец списки, которые есть на карте, и все они вставлены в список, содержащий эти карты. Имя списка - «классы», я пытался использовать точечную нотацию, так что classes.index.example, но это не работает. Почему ... допустим, у меня есть два индекса в списке, если я go вперед и обновлю индекс 0, «вопросы» и «ответы» будут вставлены в этот правильный индекс, но по какой-то причине он удалит индекс 1 и любой другой, который был создан. Это как если бы он перезаписывал все данные, но я не понимаю почему, я не использую 'setData ()'. Кроме того, если я пропущу 'title', это тоже будет удалено ??

 Future updattingUserData(int index, List<dynamic> question, List<dynamic> answer, String title) async {
    return await _collref.document(uid).updateData({
      "classes.$index.questions":  FieldValue.arrayUnion(question),
      "classes.$index.answers":  FieldValue.arrayUnion(answer),
      //"classes.$index.title": title
    });
  }

1 Ответ

2 голосов
/ 14 апреля 2020

Firestore не имеет возможности изменять элемент массива, зная только его индекс в поле массива. Что вам нужно будет сделать, это прочитать документ, изменить массив классов в памяти, а затем обновить все поле массива классов обратно в документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...