具有授权的Firebase安全规则不起作用?

时间:2019-05-07 09:56:25

标签: firebase google-cloud-firestore angular7 firebase-security-rules

我正在为管理员创建一个用户管理菜单,以编辑用户角色/删除用户。用户也可以更新其个人资料(显示名称,头像...)

所以我将规则配置为这样,但不确定为什么我不能删除?

我正在互联网上搜索样本,但没有任何线索。 Firebase规则模拟器不断响应错误消息,例如“错误运行模拟-发生未知错误”

  service cloud.firestore {
    match /databases/{database}/documents {

          // Function
             function getRole(){
                 return get(/database/$(database)/documents/users/$(request.auth.uid)).data;
              }

          function isSignedIn(){
                return request.auth != null;
           }
          // Users root document
          match /users/{user}{
            allow read,create;
            allow update: if isSignedIn() && request.resource.data.roles.keys().hasAny(['admin','editor','viewer']) == true;
            allow delete: if isSignedIn() && getRole().roles.keys().hasAny(['admin']) == true;
           }

      }
}

这是我的用户的根收集数据结构:

   users: {
       "user_uid" : {
              "displayName" : "Test",
               "email" : "test@gmail.com",
               "photoURL" : "...",
               "roles" : 
                        { 
                           "viewer" : true,
                           "admin" : true
                        }
        }
   }

0 个答案:

没有答案