Я делаю меню управления пользователями для администратора, чтобы редактировать роли пользователя / удалять пользователя.Пользователь также может обновить свой профиль (его отображаемое имя, аватар ...)
Поэтому я настраиваю правила так, но не знаю, почему не могу удалить?
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
}
}
}