Я изо всех сил пытаюсь получить доступ к ссылкам на документы в правилах firestore. Моя база данных выглядит так. (Упрощено для краткости):
curriculum
session1
roles
admin
--- canEditContent
user
--- canEditContent
users
userid
--- role
roles/admin <document reference>
Я хочу получить доступ к разрешениям администратора на основе ссылки на документ.
Я пробовал несколько способов, но, похоже, ничего не добился. Это мой код
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isSignedIn() {
return request.auth != null;
}
function getUser() {
return get(/databases/$(database)/documents/users/$(request.auth.uid));
}
function getUserRole() {
let role = get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role;
return get(role);
}
match /curriculum/{curriculum} {
allow write: if isSignedIn() && getUserRole().data.canEditContent;
}
match /users/{userId} {
allow read, update, delete, write: if request.auth != null && request.auth.uid == userId;
allow create: if request.auth != null;
}
}
}
Я пробовал много способов и, похоже, не могу его решить.
Заранее спасибо
EDIT
Добавлены скриншоты коллекций ниже
Коллекция пользователей, показывающая роль как документ, относящийся к документу роли в коллекции ролей.
Roles collection
Коллекция ролей