Предположим, у меня есть простая схема с двумя коллекциями пользователей и сообщений. Каждый объект сообщения имеет пару ключ-значение (ownerId: userId), чтобы узнать, какие пользователи владеют объектом сообщений.
users/{1,2,3...}
posts/{a,b,c...}/ownerId:userId
Я пытаюсь написать правила, по которым пользователь может только читать / записывать свои пользовательские данные и свои сообщения.
Для этого правила установки болтов для пользователя довольно просты:
isUser(uid) = auth != null && auth.uid == uid;
path /users/$uid {
read() = isUser($uid);
write() = isUser($uid);
}
Мой вопрос в том, как я могу обеспечить доступ к коллекции сообщений только пользователю. Могу ли я проверить свойство ownderId коллекции сообщений в правилах? Если да, то как, если не они, как я могу структурировать свою схему для этого?
ИЗМЕНИТЬ
Я пытаюсь защитить путь к сообщениям следующим образом:
path /posts/$pid {
read() = isUser(this.ownerId);
write() = isUser(this.ownerId);
}
Это правильный способ сделать это?