Добрый день всем, у меня такая коллекция
organization : [
- id : auto generated
- users:
[0]
- uid: user1
- userName: testUser
]
Я работаю над Angular и пытался передать новый пользовательский объект в массив users, но разрешение отклонено. Моя учетная запись должна быть помечена как пройденная, когда я вошел в систему, а также имеет разрешение на создание, обновление, удаление в этой коллекции.
Вот что я написал в своем приложении Angular
AddToOrganization(userData, organization){
firebase.firestore().collection("organizations").doc(organization.id).set(
{users: [userData]},
{merge: true}
);
}
А это мои правила ведения огня
rules_version = '2';
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;
}
function isAdmin(){
return getRole().roles.keys().hasAny(['admin']) == true;
}
// organizations documents
match /organizations/{organization}{
allow read;
allow create,update: if isSignedIn() && request.resoure.data.roles.keys().hasAny(['admin','editor']) == true;
allow delete: if isSignedIn() && isAdmin() == true;
}
}
Я также пытался запустить на симуляторе, но он запускается только до уровня документа, я хочу, чтобы данные помещались в массив внутри этого документа.