用户需要能够将其uid添加到文档中名为“用户”的数组中。他们应该只能添加/删除自己的uid,而不能进行其他操作。
为此,我需要编写一个安全规则,但无法弄清楚如何在安全规则中进行数组比较。
它必须是这样的:
allow update: if request.resource.data.users == [...resource.data.users, request.auth.uid]
这是查询:
.update({
users: firebase.firestore.FieldValue.arrayUnion(params.uid),
})
这可能吗?
答案 0 :(得分:0)
是的。可以检查安全规则中文档的数组字段中是否存在特定的uid
。您可以使用in
条件进行检查。
所以看起来很像这样。
allow update: if (request.auth.uid in request.resource.data.users);
希望这会有所帮助。
答案 1 :(得分:0)
是的,有可能,
print(df1)
id values
0 1 l
1 1 m
2 1 c
3 2 l
4 2 l
5 3 l
6 3 l
7 3 c
request.resource.data.users是建议的更改之后用户文档的状态,而resource.data.users是建议的更改之前用户文档的状态。通过检查差异是否为1,可以确保仅将一项添加到数组中。