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

348
Views
Base de datos en tiempo real de firebase, ¿cómo leer solo datos propios?

Tengo una base de datos en tiempo real en mi aplicación web nextjs y la uso para notificaciones.

El esquema de mi db es el siguiente:

ingrese la descripción de la imagen aquí

Escribo datos solo desde el lado del servidor como administrador, pero los leo desde el lado del cliente de la siguiente manera:

 const fetchNotifications = () => { const starCountRef = ref(db, `notifications/${user?.id}`); const q = query(starCountRef, orderByChild('createdAt'), limitToLast(100)); onValue(q, (snapshot) => { //Handle data }); };

En este momento tengo las siguientes reglas:

 { "rules": { ".read": "auth != null", ".write": false, "notifications":{ "$user_id":{".indexOn":"createdAt"} } } }

Como puede ver, todos los que están autenticados pueden leer todo. Quiero que el usuario lea solo sus propias notificaciones. El ObjectID es una referencia de mi mongoDB.

Por ejemplo, si tengo ID = 1 , quiero acceder a los datos solo para la ruta /notifications/1 y si trato de obtener datos de /notifications/2 , no obtengo nada (o error).

En primer lugar, ¿cómo puedo ver desde firebase la identificación que uso en mi base de datos local? ¿Tengo que avisarle primero? Segundo, ¿cómo puedo escribirlo en mis reglas?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Si las claves directamente debajo de notifications son los UID de autenticación de Firebase (como sugieren sus reglas), puede limitar el acceso solo al nodo del usuario con:

 { "rules": { //".read": "auth != null", // 👈 Remove this line ".write": false, "notifications":{ "$user_id":{ ".read": "auth.uid === $user_id", // 👈 add this line ".indexOn":"createdAt" } } } }

Consulte también la documentación de Firebase sobre cómo asegurar el acceso exclusivo del propietario del contenido .

about 4 years ago · Juan Pablo Isaza 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!