Firebase:云Firestore规则:权限被拒绝

时间:2018-10-23 13:55:22

标签: angular firebase google-cloud-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”属性,就允许更新。

我在Angularfire中使用Angular5(Ionic3)。

我的期望不对吗?

0 个答案:

没有答案