Я не могу найти подтверждение в StackOverflow или документах Google:
https://firebase.google.com/docs/firestore/manage-data/add-data#update_elements_in_an_array
Если я использую arrayUnion()
для добавления в массив Firebase, что Firebase делает заказ? Он добавляется в конец? Если элемент уже существует, скажем, на полпути в массиве [a, b, EXISTS, c], тогда arrayUnion()
просто оставит его на месте?
Мне нужно поддерживать список контактов, упорядоченный по Person
последний разговор, по сути, неявная хронология. Возможно, список необходимо переупорядочивать каждый раз при получении нового сообщения. Мне интересно, лучше ли arrayRemove()
, а затем arrayUnion()
перетасовать последнее общение Person
или проверить, нужно ли изменять массив, и просто перестроить весь массив и использовать транзакцию.
Могут происходить одновременные мутации в моем массиве контактов, поэтому представляет интерес метод, который Firebase может обработать быстрее всего.