firebase – 用于在用户之间共享文档的Firestore数据库规则和结
发布时间:2021-03-06 02:04:38 所属栏目:编程 来源:网络整理
导读:我正在实行建设一个应承用户在列表长举办协作的应用措施.必要约请每个用户才气在列表上事变. 我构建了这样的数据(疏松地基于this blog post). 假如必要,也可以改变这种布局. list list_1: users: owner: owner@company.com: true shared: user@company.com: t
我正在实行建设一个应承用户在列表长举办协作的应用措施.必要约请每个用户才气在列表上事变. 我构建了这样的数据(疏松地基于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 } } } 办理要领我弄清晰了.我将数据布局变动为: list list_1 owner: owner@company.com writeAccess: [user1@company.com,user2@company.com] id name items: item_1: id: name: ... 然后像这样的数据库法则正在事变: service cloud.firestore { match /databases/{database}/documents { match /lists/{listId} { // Allow RW on lists for owner,shared user or for everyone if it's a new list allow read,write: if resource.data.owner == request.auth.token.email || request.auth.token.email in resource.data.writeAccess || !exists(/databases/$(database)/documents/lists/$(listId)) } match /lists/{listId}/items/{itemId} { // Allow RW on item for owner or shared user of parent list allow read,write: if get(/databases/$(database)/documents/lists/$(listId)).data.owner == request.auth.token.email || request.auth.token.email in get(/databases/$(database)/documents/lists/$(listId)).data.writeAccess || !exists(/databases/$(database)/documents/lists/$(listId)) // Needed for new lists. Because lists and items are created in a batch } } } (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |