【发布时间】:2018-03-19 18:37:35
【问题描述】:
我正在尝试创建一个允许用户在列表上进行协作的应用程序。每个用户都需要被邀请才能在列表上工作。
我是这样构建数据的(大致基于this blog post)。 如果需要,也可以更改此结构。
list
list_1:
users:
owner:
owner@company.com: true
shared:
user@company.com: true
user2@company.com: true
id
name
items:
item_1:
id:
name:
...
我想要实现的目标:每个人都应该能够创建列表。他们的创建者然后成为创建列表的所有者。 只有“共享”文档中的所有者和用户才能读取和写入此列表。
我猜权限设置应该是这样的。但这不起作用:
service cloud.firestore {
match /databases/{database}/documents {
match /lists/{listId}/{anything=**} {
allow read, write: if !exists(resource.data.users.owner) ||
resource.data.users.owner == request.auth.token.email ||
request.auth.token.email in resource.data.users.shared
}
}
}
【问题讨论】:
标签: firebase firebase-security google-cloud-firestore