Допустим, у меня есть коллекция employees
, в которой у меня есть один документ на сотрудника, и я хочу вести учет всех изменений, которые были внесены в документ одного сотрудника. Я думал о следующем подходе: -
- Иметь коллекцию
pendingEmployeeWrites
, где находится клиент
разрешено только создавать документы. Каждый документ здесь будет иметь
employeeId
поле (этот идентификатор генерируется на стороне клиента для новых сотрудников).
- Облачная функция будет вызываться при создании такого документа, а затем проверять данные. Если он действителен, документ
employeeId
в коллекции employees
перезаписывается этими данными. В противном случае документ pendingEmployeeWrites
обновляется для установки isFailed
как true
. Клиентскому приложению разрешено только чтение из коллекции employees
.
Сохранение pendingEmployeeWrites
в виде плоской коллекции вместо вложенной коллекции позволяет извлекать все изменения, сделанные пользователем, а также все изменения для конкретного документа. Имеет ли этот подход смысл или есть лучший подход, который я должен рассмотреть?