【发布时间】:2020-04-18 08:40:03
【问题描述】:
我有一个事件集合和用户集合。有2种用户。管理员和标准。标准用户有一个管理员作为他们的父级。对于事件集合中的每个事件,如果他是该事件的管理员或该事件的标准用户,我需要授予读取、写入、更新或删除的权限。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isAdminForEvent() {
return request.auth.uid == resource.data.uid;
}
function isStandardUserForEvent() {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.parent_uid == resource.data.uid;
}
match /events/{eventID}/{document=**} {
allow read,create,update,delete: if isAdminForEvent() || isStandardUserForEvent();
}
match /users/{userID} {
allow read, write: if true;
}
}
}
模拟器运行良好,但在真实设备上,只允许读取。标准用户和管理员都不能进行写操作。
【问题讨论】:
-
请编辑您的问题以包含您遇到问题的最少代码。请务必记录所有相关变量(例如 UID 和
parent_uid的值),并将该记录的输出也包含在您的问题中。
标签: firebase google-cloud-firestore firebase-security