Если массивы Firestore ведут себя как массивы баз данных реального времени, то они на самом деле не существуют. Насколько я знаю, они хранятся в виде карт, например:
{
0: "first element",
2: "second and so on",
}
Вы, вероятно, можете видеть, как несменение будет большим преобразованием. Фактически, firestore не позволяет вам сделать это, говоря: «... чтобы избежать некоторых проблем, которые могут возникнуть в многопользовательской среде, вы будете добавлять их с более функциональными настройками». .
Имея это в виду, эту проблему обычно решают на уровне приложения, выбирая массив, изменяя его по мере необходимости, затем устанавливая целое.
Бит для дальнейшего чтения https://firebase.googleblog.com/2018/08/better-arrays-in-cloud-firestore.html
PS: будьте осторожны с оператором arrayUnion
, потому что он на самом деле выполняет add to set