Мне интересно, как я могу проверить, является ли значение документа ссылкой на другой документ, а документ существует с использованием правил безопасности firebase.
То, что я пробовал:
function validate(document) {
return exists(document.reference)
}
match /collection/{document} {
allow read: if request.auth != null;
allow create, update: if isAdmin(request.auth.uid) && validate(request.resource.data);
}
Поскольку это не сработало, я попытался выяснить, какой тип document.ref
есть. К сожалению, здесь нет ни одного перечисленного: https://firebase.google.com/docs/firestore/reference/security/?authuser=0#data_types
Я пробовал path
поскольку он наиболее очевидный, с которым можно работать, существует. Я не ожидал, что это сработает. Другой догадкой была, возможно, map
или string
. Оба были неправильными.
Поскольку я не знаю, что это может быть, и нет ничего документированного, как я могу преобразовать ссылку на путь, теперь я должен спросить здесь.
Кто-нибудь нашел решение?
TL; DR:
Мне нужно проверить использование правил безопасности Firestore, существует ли ссылка, сохраненная в документе, и она существует в базе данных.
Спасибо, Деннис