Reglas de seguridad de Firestore

Hasta ahora no nos hemos preocupado por la seguridad de los datos que estamos almacenando, pero tenemos que configurar correctamente las reglas de acceso a nuestra base de datos si no queremos tener problemas. Cada usuario sólo tiene que poder acceder a la información que definamos, y a nada más.

Para conseguirlo vamos a definir reglas de seguridad de Firestore que se aplican automáticamente en cada acceso a la base de datos, creando un mecanismo de protección muy eficaz.

Veamos como:

Perfeccionando el modelo de datos

Mientras empezaba a pensar en cómo aplicar las reglas de seguridad incorporadas de Firestore, me he dado cuenta de que le puedo hacer un cambio interesante al modelo de datos y simplificar el funcionamiento.

Voy a eliminar la colección de usuarios (Firebase ya se encarga de guardar la lista de usuarios y proporcionar el UID del usuario actual) y guardar en cada lista el UID del usuario al que pertenece.

Eso permite que:

  • El modelo sea más simple.
  • Las reglas de seguridad se puedan escribir de modo más efectivo (sólo dejaremos acceder a un documento concreto a su propietario).
  • Si en algún momento nos planteamos compartir listas, sólo habría que añadir los UIDs a esas listas compartidas.

El diagrama actualizado queda así (lo que está en gris desaparece):

Vamos a desarrollarlo: