Я бы хотел сохранить количество учетных записей пользователей (в нескольких документах), и я не знаю, как лучше всего подойти к нему, учитывая ограничение в 1 МБ для Firestore.В идеале я хотел бы хранить каждый уникальный идентификатор пользователя в одном массиве и получать счет таким образом.Это делает задачу идемпотентной, так как (1) каждый пользователь может только добавлять и удалять свои собственные идентификаторы из массива и (2) получить точный счет так же просто, как получить счетчик массива.Однако размер массива ограничен пределом размера документа, и документы должны быть маленькими.
Другой вариант - сохранить счетчик, который каждый пользователь может добавлять или вычитать.Если пользователь хочет добавить себя в коллекцию, клиент сначала получает текущее значение свойства counter и добавляет его к нему.Хотя это решает проблему с размером файла, задача не идемпотентна.Время, которое требуется клиенту для извлечения текущего значения свойства и установки, достаточное для того, чтобы другой пользователь сделал то же самое с более быстрым соединением и при достаточном количестве одновременных пользователей, это не кажется очень надежным.
Какой самый лучший третий вариант?