У меня проблема с созданием правил Firebase, я создал поле «роль» в своей коллекции «сотрудников», поэтому я хочу различать каждый тип пользователей, которым разрешено чтение / запись и т. Д. В БД.Моя проблема в том, что по какой-то причине я не могу проверить, действительно ли пользователь, пытающийся прочитать чужую информацию, является администратором, в функции «isAdministrator» я не могу заставить работать get:
service cloud.firestore {
// Function: Check if an authenticated employee is admin
function isAdministrator(){
//return get(/databases/$(database)/documents/employees/$(request.auth.uid)).data.role == 'admin'
// || get(/databases/$(database)/documents/employees/$(request.auth.uid)).role == 'admin';
return false;
// (data.child('role').val() == 'admin')
}
// Function: Check if an employee is authenticated
// RULES
match /databases/{database}/documents {
// Allows only admins and 'owner' to acess his document
match /employees/{document=**} {
allow read, write, update: if request.auth.uid == resource.data.uid || isAdministrator();
allow create, delete, list: if isAdministrator();
}
}
}
Вот так выглядит моя коллекция: