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