Firebase: Protegiendo tu base de datos

En un post anterior os hablé del sistema de reglas de Firebase para proteger y configurar una base de datos.

Vamos a profundizar un poco más en ello con un ejemplo práctico basado en las siguientes premisas:

  • Un usuario para poder grabar datos debe estar logado.
  • Un usuario sólo debe poder leer, editar y borrar sus datos.
Para ello lo primero que hay que hacer es insertar los datos colgando del identificador del usuario. Es decir, cuando nos logamos obtenemos del auth de Google el uid del usuario y lo utilizamos para identificar de esa manera el documento.

Por ejemplo:


firebase.database().ref('users/' + userId).set({
  username: name,
  email: email,
  profile_picture : imageUrl
});

De esta manera creamos el documento con el identificador del id del usuario logado y de él colgamos los datos.

Si creamos los datos de esta manera podemos crear reglas que configuren el acceso basándose en el id del usuario:

match /users/{userId} {
  allow read, update, delete: if request.auth.uid == userId;
  allow create: if request.auth.uid != null;
}

En este caso el usuario para crear el documento debe de estar logado y podrá leer, actualizar y borrar los datos sí y solo sí su identificador de usuario es el mismo que el del usuario que creó el documento en la base de datos.

Espero que os haya sido de utilidad ^_^.


Comentarios