Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Comience con las reglas de seguridad de Cloud Firestore

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Con las reglas de seguridad de Cloud Firestore, puede concentrarse en crear una excelente experiencia de usuario sin tener que administrar la infraestructura o escribir código de autorización y autenticación del lado del servidor.

Las reglas de seguridad brindan control de acceso y validación de datos en un formato simple pero expresivo. Para crear sistemas de acceso basados ​​en roles y usuarios que mantengan seguros los datos de sus usuarios, debe usar Firebase Authentication con las reglas de seguridad de Cloud Firestore.

Reglas de seguridad versión 2

A partir de mayo de 2019, la versión 2 de las reglas de seguridad de Cloud Firestore ya está disponible. La versión 2 de las reglas cambia el comportamiento de los comodines recursivos {name=**} . Debe utilizar la versión 2 si planea utilizar consultas de grupos de recopilación . Debe optar por la versión 2 haciendo rules_version = '2'; la primera línea en sus reglas de seguridad:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

Reglas de escritura

Todas las reglas de seguridad de Cloud Firestore consisten en declaraciones de match , que identifican documentos en su base de datos y allow expresiones, que controlan el acceso a esos documentos:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

Cada solicitud de base de datos de una biblioteca de cliente web/móvil de Cloud Firestore se evalúa según sus reglas de seguridad antes de leer o escribir cualquier dato. Si las reglas niegan el acceso a cualquiera de las rutas de documentos especificadas, la solicitud completa falla.

A continuación se muestran algunos ejemplos de conjuntos de reglas básicas. Si bien estas reglas son válidas, no se recomiendan para aplicaciones de producción:

Autorización requerida

// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Negar todo

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Permitir todo

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

La ruta {document=**} utilizada en los ejemplos anteriores coincide con cualquier documento en toda la base de datos. Continúe con la guía para estructurar reglas de seguridad para aprender a hacer coincidir rutas de datos específicas y trabajar con datos jerárquicos.

Reglas de prueba

Cloud Firestore proporciona un simulador de reglas que puede usar para probar su conjunto de reglas. Puede acceder al simulador desde la pestaña Reglas en la sección Cloud Firestore de Firebase console.

El simulador de reglas le permite simular lecturas, escrituras y eliminaciones autenticadas y no autenticadas. Cuando simula una solicitud autenticada, puede crear y obtener una vista previa de los tokens de autenticación de varios proveedores. Las solicitudes simuladas se ejecutan en el conjunto de reglas de su editor, no en el conjunto de reglas implementado actualmente.

Reglas de implementación

Antes de que pueda comenzar a usar Cloud Firestore desde su aplicación móvil, deberá implementar reglas de seguridad. Puede implementar reglas en Firebase console o mediante Firebase CLI.

Las actualizaciones de las reglas de seguridad de Cloud Firestore pueden tardar hasta un minuto en afectar a las nuevas consultas y oyentes. Sin embargo, puede llevar hasta 10 minutos propagar completamente los cambios y afectar a los oyentes activos.

Usar la consola de Firebase

Para configurar e implementar su primer conjunto de reglas, abra la pestaña Reglas en la sección Cloud Firestore de Firebase console.

Escriba sus reglas en el editor en línea y luego haga clic en Publicar .

Usar la CLI de Firebase

También puede implementar reglas mediante Firebase CLI . El uso de la CLI le permite mantener sus reglas bajo control de versiones con su código de aplicación e implementar reglas como parte de su proceso de implementación existente.

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

// Edit the generated .rules file to your desired security rules
// ...

// Deploy your .rules file
firebase deploy --only firestore:rules

Mejore la seguridad para el almacenamiento en la nube

Sus aplicaciones se beneficiarán de las sólidas funciones de base de datos de Cloud Firestore y de las funciones de administración y almacenamiento de archivos de Cloud Storage. Usados ​​juntos, estos productos también brindan un refuerzo de la seguridad de las aplicaciones, ya que Cloud Firestore puede capturar los requisitos de autorización que pueden usar las reglas de seguridad de Firebase para ambos productos. Para obtener más información, consulte la guía de almacenamiento en la nube .

Próximos pasos