#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()
вызова в ваших правилах.