Pav*_*vel 5 firebase firebase-security google-cloud-firestore
我有一个结构化的文档
name: "blablabla"
members:
123: true
456: true
Run Code Online (Sandbox Code Playgroud)
用户可以将自己添加到 members
docRef.update(FieldPath.of("members", myUid), true);
Run Code Online (Sandbox Code Playgroud)
我如何编写安全规则以允许这样做?
我试过
allow update: if is_valid(request.resource.data);
function is_valid(data) {
return data.keys() == ['members']
&& data.members.keys() == [request.auth.uid]
&& data.members[request.auth.uid] == true;
}
Run Code Online (Sandbox Code Playgroud)
但我得到 PERMISSION_DENIED: Missing or insufficient permissions.
(但是在安全规则模拟器中允许访问)
我使用removedKeys想出了一个条件。从理论上讲,这应该发挥作用。
allow update: if is_valid(request.resource.data);
function is_valid(data) {
return data.keys() == ['members']
&& data.members.keys() == [request.auth.uid]
&& afterData().members.diff(resource.data.members).removedKeys().size() == 0;
}
function afterData() {
return getAfter(/databases/$(database)/documents).data;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
149 次 |
最近记录: |