Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

124
Visualizações
Firestore gobierna 'Lectura simulada permitida' pero falla en el navegador

Mis reglas de seguridad son súper simples. Tengo dos colecciones: riders y races :

  • riders : solo se puede leer o escribir cuando el usuario ha iniciado sesión
  • races : puede ser leído por un usuario no autenticado; escrito cuando el usuario inicia sesión.
 service cloud.firestore { match /databases/{database}/documents { // restrict read/write on all to authenticated match /{document=**} { allow read, write: if request.auth != null; // then allow collection read if match match /races/{id} { allow read, list: if true; } } } }

Estas reglas permiten lo que parece ser la configuración correcta usando el Rules Playground de las consolas de Firebase, pero en los usuarios de autenticación del navegador se comportan como se esperaba, pero a los usuarios no autenticados se les devuelve un error cuando llaman a una carrera:

 core.js:6456 ERROR FirebaseError: Missing or insufficient permissions. at new e (prebuilt-47338342-439a2133.js:188) at prebuilt-47338342-439a2133.js:10415 at prebuilt-47338342-439a2133.js:10416 at e.onMessage (prebuilt-47338342-439a2133.js:10438) at prebuilt-47338342-439a2133.js:10355 at prebuilt-47338342-439a2133.js:10386 at prebuilt-47338342-439a2133.js:15146 at ZoneDelegate.invoke (zone.js:372) at Zone.run (zone.js:134) at zone.js:1276
 // service call this.racesCollection = this.firestore.collection<Race>('races'); this.racesCollection .doc(id) .valueChanges() .pipe(takeUntil(this.destroy$)) .subscribe((response: any) => { console.log('=== APP SERVICE emits race ===', response); this.race.next(response); });

He intentado reescribir las reglas, pero parece que no puedo encontrar mi camino alrededor de esta. ¡Cualquier ayuda o idea apreciada! Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Debe escribir sus reglas de seguridad de tal manera que se superpongan :

 service cloud.firestore { match /databases/{database}/documents { // restrict read/write on all to authenticated match /{document=**} { allow read, write: if request.auth != null; } // then allow read for the races collection for all users match /races/{id} { allow read, list: if true; } } }

Además, tenga en cuenta que list es un "subcaso" de read , por lo que puede eliminar la regla de list , es decir, simplemente allow read: if true; .


Por cierto, el simulador muestra correctamente que sus reglas no permiten leer un documento en la colección de races si no está autenticado.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda