Skip to content

Reglas en FireBase y Realtime database

Camilo edited this page Nov 5, 2024 · 4 revisions

Reglas de Seguridad en Firebase

Reglas para Firestore y Storage

Storage

json service firebase.storage { match /b/{bucket}/o { match /profile_images/{userId} { allow read, write: if request.auth != null && request.auth.uid == userId; } } }

Nota: Estas reglas permiten que los usuarios autenticados puedan leer y escribir solo en sus propias imágenes de perfil. Aunque funciona para desarrollo, no es la configuración más segura para producción, ya que otros recursos pueden quedar expuestos si no se configuran correctamente.

Realtime Database

json { "rules": { ".read": true, ".write": true } }

Nota: Estas reglas permiten a cualquier usuario leer y escribir en toda la base de datos. Esto es muy inseguro para producción porque expone todos los datos a manipulaciones y accesos no autorizados. Asegúrate de ajustar estas reglas antes de lanzar la aplicación.

Estructura de la Base de Datos

La base de datos en tiempo real está organizada en los siguientes nodos principales:

  • users: Contiene información sobre los conductores, como experiencia y nivel.
  • usuarios: Almacena detalles de los usuarios, incluyendo su perfil y los viajes que han creado.
  • viajes: Registra todos los viajes disponibles, con detalles como el conductor, costo, descripción, destino, estado del viaje, y la ubicación inicial.

Importancia de la Base de Datos en Tiempo Real

La estructura de la base de datos influye directamente en cómo funciona el TypeScript (TS) en la aplicación. Por ejemplo, en la página crear-viaje, el TypeScript maneja la lógica de creación de un nuevo viaje, y los datos ingresados por el usuario se guardan automáticamente en la base de datos en tiempo real.

Cada vez que un usuario crea un viaje, el TS en crear-viaje se encarga de:

  • Capturar los datos del formulario (como destino, costo, número de asientos, etc.).
  • Guardar estos datos en el nodo correspondiente de la base de datos.
  • Actualizar la información en tiempo real para que otros usuarios puedan ver el viaje recién creado.

Recomendación: Mantener siempre una sincronización entre la lógica del TS y la estructura de la base de datos para evitar inconsistencias y asegurar que la aplicación funcione correctamente.