Можно ли получить доступ к значениям свойств документа, содержащимся в массивах объектов?
Я работал над превосходным Angular Firebase руководством по правилам безопасности - в котором ключи документов используются для удовлетворения требований доступа. Вот пример:
Простой пользовательский документ
name: 'a user',
roles: {
admin: true,
editor: true
}
Правило безопасности
service cloud.firestore {
match /databases/{database}/documents {
function getUserData() {
return get(/databases/$(database)/documents/accounts/$(request.auth.uid)).data
}
function userHasRole(role) {
return getUserData().roles[role] == true;
}
match /<some_path>/ {
allow read, write: if userHasRole(editor);
}
}
}
Моя структура документа пользователя немного сложнее, хотя в приложении есть разные модули, каждый со своими ролями. Например:
Сложный пользовательский документ
name: 'a user',
roles:[
{
feature: 'feature 1',
role: 'admin'
},
{
feature: 'feature 2',
role: 'editor'
}
]
С моим пользовательским документом, структурированным таким образом, возможно ли получить доступ к значению «роль» данной функции в рамках правил безопасности?