我有一个名为“设计”的收藏。我还有一个名为“用户”的收藏。我有一个名为“ designPermissions”的第三个集合。
designPermissions集合具有一个用于userId的字段和一个用于designId的字段。具有用户ID和外观设计ID的文档授予该用户编辑该外观设计的权限。
我想写一个强制执行此规则的安全规则。
这是我到目前为止所拥有的...
service cloud.firestore {
match /databases/{database}/documents {
match /designs/{design} {
allow create: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.designer == true
allow write, update: if get(/databases/$(database)/documents/designPermissions/{designPerm}).data.userId==request.auth.uid &&
get(/databases/$(database)/documents/designPermissions/{designPerm}).data.designId==$(design}
allow read: if true;
}
}
}
本质上,如果designPermissions集合中有一个条目,其中包含当前用户的ID和相关设计的designId,则该用户有权对其进行编辑。