【发布时间】:2019-01-17 01:42:07
【问题描述】:
规则集保护用户的条目如下:
- 只有他或管理员可以读取他的数据
- 只有管理员可以更新用户的权限
- 用户可以更新他的所有数据,除非他设置了权限对象
规则如下:
match /users/{userId} {
allow read: if isCurrentUser(userId) || isAdmin();
allow write: if (isCurrentUser(userId) && !isModifyingPermissions()) || isAdmin();
function isModifyingPermissions(){
return request.resource.data['permissions'] != null;
}
}
我坚持使用 isModifiyingPermissions() 函数。如果请求具有permissions 属性的值,它会正确拒绝写入。但是,如果没有提供 permissions 属性,则规则会崩溃,说明如下:
Error: simulator.rules line [19], column [15]. Property permissions is undefined on object.
如何编写“检查请求资源的属性是否存在”?
【问题讨论】:
标签: firebase google-cloud-firestore firebase-security