Por alguna razón, puedo ejecutar el simulador de reglas y funciona perfectamente (rechaza las lecturas de los documentos que tienen un conjunto dedicado a falso), pero la aplicación js aún extrae todos los documentos si elimino la declaración "Dónde" de:
firebase.firestore().collection('live').where('dedicated', '==', false).onSnapshot to firebase.firestore().collection('live').onSnapshotNecesito poder enumerar los documentos, pero no leer los que tienen dedicado = verdadero. Sé que las reglas no son filtros, pero planeo mantener la instrucción where y aún quiero restringir el acceso a ciertos documentos por seguridad.
Normas:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /live/{document} { allow list: if true; allow read: if resource.data.dedicated == false; } ...Ya que tus reglas dicen:
allow list: if true;Esto significa que permite llamadas a la API que recuperan una lista de documentos sin ninguna condición.
Si solo desea permitir la primera consulta, debe usar:
allow list: if resource.data.dedicated == false;