Значение поля.arrayUnion: как добавить одинаковые элементы в массив? Flutter

#firebase #flutter #dart #google-cloud-firestore

#firebase #flutter #dart #google-облако-firestore

Вопрос:

Я создал систему проверки в коллекции внутри документа. В документе у меня есть массив, в котором указано среднее значение оценок (которые добавляются при загрузке обзора), но если я загружу два равных числа с значением поля.arrayUnion, я получаю только один.

Ответ №1:

Это ожидаемое поведение FieldValue.arrayUnion() . Согласно документации API:

Каждый указанный элемент, который еще не существует в массиве, будет добавлен в конец. Если изменяемое поле еще не является массивом, оно будет перезаписано массивом, содержащим точно указанные элементы.

FieldValue.arrayUnion() не добавит элемент, если он уже существует в массиве. Если вам нужно это сделать, вы должны прочитать документ, изменить массив в памяти, чтобы он содержал то, что вы хотите, затем обновить весь массив обратно в документ.