Правила безопасности Firebase с авторизацией не работают? - PullRequest
0 голосов
/ 07 мая 2019

Я делаю меню управления пользователями для администратора, чтобы редактировать роли пользователя / удалять пользователя.Пользователь также может обновить свой профиль (его отображаемое имя, аватар ...)

Поэтому я настраиваю правила так, но не знаю, почему не могу удалить?

Iищу в интернете, чтобы найти образец, но никаких подсказок.Имитатор правил 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
                        }
        }
   }
...