Есть ли в правилах безопасности Firestore способ доступа к параметрам, отправляемым как часть запроса списка?
ЦЕЛЬ: Я хочу получить single
пост-документ, которыйравно published
, используя его slug
свойство.
QUERY:
let postDoc = this.afs.collection( 'posts', ref => ref
.where( 'published', '==', true )
.where( 'slug', '==', slug )
.limit( 1 )
);
ПРАВИЛО:
allow list: if ( resource.data.published == true )
&& ( resource.data.slug == request.resource.data.slug )
&& request.query.limit <= 1;
ПРОБЛЕМА: Это приводит к 'нет разрешения'ошибка.Однако, если я удаляю ( resource.data.slug == request.resource.data.slug )
, он работает нормально.Я предполагаю, что проблема в том, что request.resource.data.slug
существует только для запросов на запись, а не для запросов на чтение (см. https://firebase.google.com/docs/reference/rules/rules.firestore.Request).
Есть ли способ заставить эту работу?