Я думаю, это a плохая практика :
Представьте себе, что в документе есть несколько тысяч полей, и несколько пользователей вносят свой вклад в этот документ и меняют его там каждую секунду. Всего за минуту у вас будет 60 MB
(!) Использования данных для этого одного документа на пользователя .
Если бы вы разбили это на несколько документов, у вас было бы только 1 MB
на пользователя при макс. . Большую часть времени у пользователей уже будет кэшироваться хотя бы часть документов, что означает, что это снова уменьшит использование.
Firestore не оптимизирован для этого
Как я уже коснулся , кеш не будет работать вообще . Даже если 99% полей остаются неизменными, все эти значения будут обновляться при каждом изменении другого поля.
Это также отрицательно повлияет на запросы, поскольку они построены для нескольких документов.
Вы будете платить больше
Cloud Firestore оптимизирован для чтения документов - они не очень дороги. Пропускная способность , однако, стоит дорого:
См. Расценки по Расценки Firebase и по сетевым расходам (которые вы также должны платить и иметь бесплатную квоту) Цены в Google Cloud :
Таким образом, в случае выше, мы можем ясно видеть, что разница может легко составлять два порядка (выходной сигнал в МБ к K читает) больше, однако, только для цены , равной , допускается только один порядок. Я мог бы легко представить, что вы платите в 10 раз больше, используя свой метод, и это может стоить в зависимости от региона.
Кстати, возможно, я неправильно понял точную цену. Вы можете обнаружить, что запросы Cloud Firestore также оплачиваются на основе пропускной способности здесь и, очевидно, на странице Квоты App Engine для вашего проекта.