У
есть одно приложение, в котором у нас есть несколько communities
и пользователь, у которого есть роли для write
сообщения.В каждом сообществе есть пользователи под своим крылом ({communityId}/meta_users/{uid}
). Я написал функцию для доступа к ролям пользователя, я пытался просмотреть документ, но не смог подать какую-либо помощь.При моделировании я проверяю, что userRoleLevel
не позволит читать, даже если пользователю назначена роль («admin»).пожалуйста, помогите мне исправить это.Я вставил фрагмент правила ниже.дайте мне знать, если нужно больше информации
function userRoleLevel(community){
return exists(/databases/$(database)/documents/communities/$(community)/meta_users/$(request.auth.uid)/roles/level)
&& get(/databases/$(database)/documents/communities/$(community)/meta_users/$(request.auth.uid)/roles/level).data.role;
}
service cloud.firestore {
match /databases/{database}/documents {
// All read is allowed for now.
match /{document=**} {
allow read;
}
match /communities/{community} {
allow write: if owner();
match /{category}/{message}{
allow write: if loggedIn()
&& (userRoleLevel(community) in ['owner', 'admin', 'writer']);
}