I have notification records where there is a text and a list of users (max 10).
{text: "Beware of the dog", users: [ uid1, uid2, uid3, ... ]}
When a user read/acknowledge the notification, I want to remove him from the list of users who can see the notification (then he won't get any anymore).
For that, when the user press the "hide notification button", he send a request to update the notification record with:
users: FieldValue.arrayRemove(uid)
I want to enfore with security rules that the user:
- Doesn't change other part of the notification record.
- Send its uid and only its uid in the arrayRemove part.
Tried with
allow update: if
request.auth.uid != null
&& request.auth.uid in resource.data.users
&& request.resource.size() == 1
&& request.resource.data.users != null;
- The request.resource.size == 1 doesn't work. Can't figure out why as I have only one field in my request.
- I have no way to ensure the arrayRemove is strictly limited to its uid.
Any hint, help, idea well appreciated.