Я создаю приложение в Firebase, которое должно гарантировать, что пользователи могут только читать / писать документы / коллекции, принадлежащие их команде.Мой вопрос в основном, как я должен структурировать данные о членстве.В частности, вот одна идея, которую я обдумывал:
/teams/{teamid}
{
displayName: "Company X Team",
owner: "userid",
members: ["email1", "email2", "email3"]
}
/teams/{teamid}/projects/{projectid}
{
name: "My Project"
otherProps: "Other Properties"
}
/users/{userid}
{
displayName: "John Doe",
email: "john.doe@somedomain.com"
}
Должен ли я хранить "члены" в виде массива как часть / команды / документа (как показано в примере кода выше)?Или я должен хранить его как отдельную коллекцию документов, очень похожую на / projects /?
Моя главная проблема - когда я иду и пишу правила безопасности.Я хочу убедиться, что только владелец или участники могут вносить изменения в / команды / и его подколлекции (например: /projects/).
Каким способом будет проще писать правила безопасности?Какой из них будет иметь лучшую производительность?