Firestore правила безопасности вложенный запрос группы коллекций

#firebase #google-cloud-firestore #firebase-security

#firebase #google-облако-firestore #firebase-безопасность

Вопрос:

У меня есть следующие правила:

  -> Requests
    -> documentID
        -> name: Andrey Solera
        -> email: someemail@example.com
        -> userID: 1234ID
        -> resolved: pending => (can also be accepted or rejected)
  

Я хочу иметь возможность отправлять новый документ в Requests узел тогда и только тогда, когда userID лицо, отправляющее запрос, еще не добавило запрос.
Я знаю, что могу использовать userID as the documentID , однако мне нужна какая-то история документов на случай, если пользователь отправил запрос, который был отклонен, и при использовании userID as the documentID нет возможности иметь историю, насколько я знаю.
Возможно ли проверить вложенный объект с помощью правил безопасности Firestore?

Ответ №1:

Правила безопасности могут проверять, существует ли документ по определенному пути. Однако они не могут запросить, существует ли документ, соответствующий другим типам условий.

Итак, если у вас есть документ с UID пользователя в качестве идентификатора во вложенной коллекции, вы можете проверить это с помощью exists() вызова в ваших правилах.