#firebase #flutter #dart #google-cloud-firestore
#firebase #flutter #dart #google-облако-firestore
Вопрос:
Я создал систему проверки в коллекции внутри документа. В документе у меня есть массив, в котором указано среднее значение оценок (которые добавляются при загрузке обзора), но если я загружу два равных числа с значением поля.arrayUnion, я получаю только один.
Ответ №1:
Это ожидаемое поведение FieldValue.arrayUnion()
. Согласно документации API:
Каждый указанный элемент, который еще не существует в массиве, будет добавлен в конец. Если изменяемое поле еще не является массивом, оно будет перезаписано массивом, содержащим точно указанные элементы.
FieldValue.arrayUnion()
не добавит элемент, если он уже существует в массиве. Если вам нужно это сделать, вы должны прочитать документ, изменить массив в памяти, чтобы он содержал то, что вы хотите, затем обновить весь массив обратно в документ.