angular - Firebase:云Firestore规则:权限被拒绝
问题描述
我的收藏/users/
定义了以下访问规则:
allow read: if isCurrentUser(userId) || isDoctor() || isAdmin();
allow write: if (isCurrentUser(userId) && !isModifyingPermissions() );
function isModifyingPermissions(){
return request.resource.data.keys().hasAny(["permissions"]);
}
集合中的文档users
具有一系列属性:
- 姓名
- 电子邮件
- 权限
- ...
测试:
- 对已连接用户的匹配文档执行非破坏性更新
myDocument.update({name: 'Hello Stackoverflow'});
观察到的行为:
- 如果现有资源具有“权限”属性,则拒绝更新
- 如果现有资源没有“权限”属性,则允许更新
预期行为: - 如果请求的更新包含“permissions”属性,则更新被拒绝 - 不管现有对象包含,只要它不包含“permissions”属性就允许更新。
我正在使用 Angular5 (Ionic3) 和 Angularfire。
我的期望错了吗?
解决方案
推荐阅读
- python - Python:更新类函数内嵌套字典的值
- string - 如何在 Clojure 中替换字符串中的特定字符?
- google-cloud-platform - 云功能无法移动存档桶中的文件
- javascript - Javascript:函数返回 0 而不是出现奇数次的数字
- php - 在 Dokan 供应商商店页面中使用 Woof 显示产品过滤器
- python - 使用numpy内存映射python提取文件
- curl - 我应该如何为 ftp 下载设置 curl 超时?
- c# - 需要将我的枚举插入 C# 中的组合框
- python - NLP - Python - 条件频率分布
- asp.net-mvc - ASP NET MVC 上一页