【发布时间】:2020-08-22 18:50:02
【问题描述】:
我有通知记录,其中包含文本和用户列表(最多 10 个)。
{text: "Beware of the dog", users: [ uid1, uid2, uid3, ... ]}
当用户阅读/确认通知时,我想将他从可以看到通知的用户列表中删除(然后他将不再收到任何通知)。
为此,当用户按下“隐藏通知按钮”时,他会发送更新通知记录的请求:
users: FieldValue.arrayRemove(uid)
我想执行用户的安全规则:
- 不更改通知记录的其他部分。
- 在 arrayRemove 部分发送它的 uid 和仅它的 uid。
尝试过
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。
任何提示、帮助、想法都非常感谢。
【问题讨论】:
标签: google-cloud-firestore firebase-security