Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

188
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!