Cómo comenzar con las reglas de seguridad de Cloud Firestore

Con las reglas de seguridad de Cloud Firestore, puedes enfocarte en crear una excelente experiencia del usuario sin tener que administrar la infraestructura ni escribir código de autorización y autenticación para el servidor.

Las reglas de seguridad proporcionan control de acceso y validación de datos en un formato simple, pero expresivo. Para crear sistemas de acceso según la función y el usuario que mantengan protegidos los datos de los usuarios, debes usar Firebase Authentication con las reglas de seguridad de Cloud Firestore.

Cómo escribir reglas

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

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

Todas las solicitudes que se envíen a la base de datos desde una biblioteca cliente de Cloud Firestore web o para dispositivos móviles se comparan con tus reglas de seguridad antes de leer o escribir datos. Si las reglas rechazan el acceso a alguna de las rutas de los documentos especificados, falla la solicitud completa.

A continuación, se muestran algunos ejemplos de conjuntos de reglas básicos. Estas reglas son válidas pero no se recomiendan para las aplicaciones de producción:

Auth obligatoria

// 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.uid != null;
    }
  }
}

Rechazar 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=**} que se usa en los ejemplos anteriores coincide con todos los documentos de la base de datos completa. Continúa con la guía para estructurar reglas de seguridad a fin de aprender a hacer coincidir rutas de datos específicas y trabajar con datos jerárquicos.

Cómo implementar reglas

Para poder usar Cloud Firestore desde la app para dispositivos móviles, debes implementar reglas de seguridad. Puedes implementar reglas en Firebase console o usar Firebase CLI.

Usa Firebase console

Para implementar y configurar tu primer conjunto de reglas, abre la pestaña Reglas en la sección Cloud Firestore de Firebase console.

Escribe las reglas en el editor en línea y haz clic en Publicar.

Usa Firebase CLI

También puedes implementar reglas con Firebase CLI. Esta interfaz te permite mantener las reglas bajo control de versión con el código de la aplicación y las reglas de implementación como parte del 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

Próximos pasos

Enviar comentarios sobre...

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