У меня есть коллекция событий и коллекция пользователей. Есть 2 типа пользователей. Админ и Стандарт. Стандартные пользователи имеют объявление в качестве родителя. Для каждого события в коллекции событий мне нужно дать разрешение на чтение, запись, обновление или удаление, если он является администратором этого события или обычным пользователем этого события.
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isAdminForEvent() {
return request.auth.uid == resource.data.uid;
}
function isStandardUserForEvent() {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.parent_uid == resource.data.uid;
}
match /events/{eventID}/{document=**} {
allow read,create,update,delete: if isAdminForEvent() || isStandardUserForEvent();
}
match /users/{userID} {
allow read, write: if true;
}
}
}
Симулятор работает нормально , но на реальном устройстве разрешено только чтение. Ни обычный пользователь, ни администратор не могут выполнять операции записи.