У меня есть записи уведомлений, где есть текст и список пользователей (максимум 10).
{text: "Beware of the dog", users: [ uid1, uid2, uid3, ... ]}
Когда пользователь читает / подтверждает уведомление, я хочу удалить его из списка пользователей, которые могут видеть уведомление (тогда он больше не будет получать).
Для этого, когда пользователь нажимает кнопку «Скрыть уведомление», он отправляет запрос на обновление записи уведомления с помощью:
users: FieldValue.arrayRemove(uid)
Я хочу добавить правила безопасности, которые пользователь:
- Не меняет другую часть записи уведомления.
- Отправьте его uid и только его uid в части arrayRemove.
Пробовал с
allow update: if
request.auth.uid != null
&& request.auth.uid in resource.data.users
&& request.resource.size() == 1
&& request.resource.data.users != null;
- request.resource.size == 1 не работает.Не могу понять, почему, поскольку у меня есть только одно поле в моем запросе.
- У меня нет способа гарантировать, что arrayRemove строго ограничен его uid.
Любой намек, помощь, идея высоко ценится.