Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

186
Vistas
La confirmación de autenticación de fracción de segundo de Firebase interfiere con las páginas de Sveltekit debido a las reglas de Firestore

Estoy creando una aplicación con sveltekit usando Firebase Authentication y Firestore. También cambié recientemente mis reglas de Firestore para allow read, write: if request.auth != null; . Sin embargo, mis páginas ahora se ven afectadas por las actualizaciones del navegador.

Cuando me dirijo a las páginas que requieren lectura de firestore, todo salió bien. Pero cuando actualicé, la página se actualizará a una página en blanco con la palabra 500 y mi consola registrará Missing or insufficient permissions.\nFirebaseError: Missing or insufficient permissions. Afortunadamente, mi barra de navegación todavía se muestra y funciona, y cuando navego lejos y vuelvo a la página, todo vuelve a aparecer. Leí que Firebase tarda una fracción de segundo en confirmar la autenticación y creo que eso está interfiriendo con mi página.

Como necesitaba proteger algunas páginas de la autenticación, implementé el código en mi página __layout.svelte .

__layout.esbelto

 <script lang="ts" context="module"> import type { User } from 'firebase/auth'; import { onAuthStateChanged } from "firebase/auth"; import { auth } from "$lib/scripts/firebaseStart"; export async function load() { let authUser: Promise<unknown> = getAuthUser(); function getAuthUser() { return new Promise(resolve => { onAuthStateChanged( auth, user => resolve(user ? user : false) ); }); } return { props: { authUser } }; } </script> <script lang="ts"> import "../styles/global.css"; export let authUser: User|boolean; </script> <main> {#if authUser} <!-- page content --> <slot></slot> {/if} </main>
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

El error que muestra parece provenir de uno de los productos de Firebase que está protegido por reglas de seguridad del lado del servidor e indica que su código está tratando de acceder a datos o archivos que no coinciden con las reglas que configuró.

De hecho, Firebase vuelve a autenticar las credenciales del usuario cuando la página se vuelve a cargar, lo que (dependiendo de la velocidad de su conexión) puede demorar más de una fracción de segundo.

No hay un usuario actual antes de que se complete esta llamada de autenticación, por lo que si sus reglas de seguridad requieren un usuario autenticado, debe acceder a los datos/archivos hasta que la autenticación se haya completado con éxito conectándose a la base de datos/almacenamiento de archivos solo una vez que su promesa getAuthUser se resuelve con el usuario actual.

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda