Anuncio de Cloud Firestore (Beta): Prueba la nueva base de datos escalable y flexible de Firebase y Google Cloud Platform. Obtén más información sobre Cloud Firestore.

Resuelve problemas

Si recibes una alerta que indica que Firebase Realtime Database es insegura, puedes modificar y probar las reglas de Firebase Database para resolver los problemas que generen esa alerta. Usa esta guía a fin de verificar las reglas de Firebase Database, comprender los posibles problemas y probar los cambios antes de implementarlos.

Revisa las reglas de Firebase Database

Para ver las reglas existentes de Firebase Database, ve a la pestaña Reglas de Firebase console.

Información sobre las reglas de Firebase Database

Las reglas de Firebase Database se interponen entre tus datos y un usuario malicioso. Aunque es común comenzar a desarrollar con reglas abiertas que otorguen acceso de lectura y escritura a todos los usuarios, es importante que las configures para proteger los datos antes de implementar tu app. Cuando lo hagas, usa el simulador para probar diferentes reglas.

Si las reglas de Firebase Database son algo nuevo para ti, consulta Primeros pasos con las reglas de bases de datos a fin de obtener más información sobre cómo funcionan.

Soluciona problemas comunes

Es posible que las reglas de Firebase Database que estableciste en la configuración predeterminada o que usaste en un principio para desarrollar tu app con Realtime Database no sean las mejores para la app que implementaste. Revisa los siguientes obstáculos más comunes y las posibles soluciones.

Acceso abierto

Cuando configuraste Realtime Database, es posible que establecieras reglas que otorgasen acceso abierto durante el desarrollo. Es posible que tu base de datos no parezca insegura si eres el único usuario con acceso a ella, sin embargo, si implementaste tu app y no autenticas usuarios, tus datos serán vulnerables ante usuarios maliciosos.

No se recomienda: Acceso de lectura y escritura a todos los usuarios

{
  "rules": {
    ".read": true,
    ".write": true
  }
}
Solución: Reglas que restrinjan el acceso de lectura y escritura Compila reglas que tengan sentido según la jerarquía de los datos. Una de las soluciones comunes a este problema es la seguridad basada en usuarios con Firebase Authentication. Obtén más información en Seguridad basada en usuarios.

Acceso para cualquier usuario autenticado

En ocasiones, las reglas de Firebase Database verifican que el usuario acceda a su cuenta, pero no restringen el acceso según esa autenticación. Si una de tus reglas incluye auth !== null, confirma que quieres que cualquier usuario autenticado tenga acceso a los datos.

No se recomienda: Cualquier usuario autenticado tiene acceso de lectura y escritura en toda tu base de datos

{
  "rules": {
      // any logged-in user access your data
      ".read": "auth !== null",
      ".write": "auth !== null"
   }
}
Solución: Acceso limitado con la variable auth. Cuando verifiques la autenticación, te recomendamos usar una de las propiedades de autenticación para restringir aún más el acceso de algunos usuarios a conjuntos de datos específicos. Obtén más información sobre la variable auth en Seguridad basada en usuarios.

Reglas heredadas de forma inadecuada

Las reglas de Firebase Database se transmiten en cascada, con reglas en rutas de acceso superiores y más superficiales que anulan las de los nodos secundarios más profundos. Cuando escribes una regla en un nodo secundario, recuerda que solo puede otorgar privilegios adicionales. No puedes definir mejor o revocar el acceso a los datos en una ruta de acceso más profunda en la base de datos.

No se recomienda: Definir mejor las reglas en rutas de acceso secundarias

{
  "rules": {
     "foo": {
        // allows read to /foo/*
        ".read": "data.child('baz').val() === true",
        "bar": {
          /* ignored, since read was allowed already */
          ".read": false
        }
     }
  }
}
Solución: Escribir reglas en rutas de acceso superiores que sean amplias y otorgar privilegios más específicos en rutas de acceso secundarias. Si las necesidades de acceso a tus datos requieren un mayor nivel de detalle, aplícalo en tus reglas. Consulta Cómo proteger tus datos para obtener más información sobre cómo transmitir en cascada las reglas de Firebase Database.

Acceso cerrado

Otro enfoque común que puedes aplicar mientras desarrollas la app es mantener tu base de datos bloqueada. Por lo general, esto significa que bloqueaste el acceso de lectura y escritura para todos los usuarios de la siguiente manera:

{
  "rules": {
    ".read": false,
    ".write": false
  }
}

Aunque no genere inseguridad, es posible que provoque problemas cuando lances tu app. Obtén más información sobre cómo configurar e implementar las reglas de Firebase Database.

Prueba las reglas de Firebase Database

Para probar las reglas actualizadas de Firebase Database, usa el simulador de Firebase console.

  1. Para abrirlo, haz clic en Simulador, en la pestaña Reglas.
  2. En la configuración del simulador, selecciona las opciones de tu prueba, como estas:
    • Prueba de lectura o escritura
    • Una ubicación específica en tu base de datos, como una ruta de acceso
    • Tipo de autenticación: ID de usuario específico, usuario anónimo autenticado o no autenticado
  3. Haz clic en Ejecutar y busca los resultados en el banner que está arriba de la ventana de reglas.

Enviar comentarios sobre...

Firebase Realtime Database
Si necesitas ayuda, visita nuestra página de asistencia.