Firestore Limit Array Поле Записи - PullRequest
0 голосов
/ 03 октября 2019

Я новичок в Firestore, так что я могу что-то упустить. Я пытаюсь добиться, скажем,

У меня есть это: tableName / documentID / history-array

В этом history-array хранится много журналов изAndroid-приложение с использованием Array Union. Теперь я хочу, чтобы этот history-array сохранял только последние 100 или N номеров записей. Таким образом, самые старые данные удаляются, если появляется новая запись.

Возможно ли это в Firestore? Если нет, то есть ли способ сделать это, используя ежедневное задание / задание / функцию?

Я делаю это, потому что хочу ограничить размер документов.

1 Ответ

2 голосов
/ 03 октября 2019

Если у вас большой растущий набор данных, использование поля типа массива - не лучший способ его хранения. Было бы лучше использовать вложенную коллекцию с новым документом в этой вложенной коллекции для каждого элемента в наборе. Это будет намного проще запрашивать и изменять.

Но если вам абсолютно необходимо использовать массив, Firestore не предоставляет никакого способа управления содержимым массива так, как вы описываете. Чтобы изменить содержимое массива (без arrayUnion или arrayRemove), вам придется написать некоторый код, который читает документ, итерирует значения полей списка, изменяет их в памяти так, как вам нужно, затем обновляет массив додокумент.

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