loading...
Cover image for ¿Es firebase una buena opción ?

¿Es firebase una buena opción ?

antojsh profile image Antonio Sierra ・4 min read

Antes de empezar quiero aclararle que mi misión en este post no es darle una mala fama a firebase, si no, dar mi punto de vista según la experiencia que he tenido usando esta herramienta, y que ustedes puedan evaluar si firebase es la mejor opción para sus futuros proyectos.

Que es firebase

Si estás un poco perdido aún no sabes qué es firebase, es un suit de varios servicios en la nube ofrecidos por Google, servicios como base de datos no SQL real time, hosting, almacenamiento en la nube etc. Firebase es un servicio gratuito hasta cierto punto y su implementación es muy fácil para distintas plataformas.

Pero en este caso te voy a contar 5razones por la cual firebase no se convierte en una buena opción a la hora de realizar nuevos desarrollos.

1. Las reglas de la base de datos (firestore)

Una de las principales razones por la cuales firebase de ha vuelto famoso es por qué los desarrolladores solo se preocupan de desarrollar el frontend y toda la administración de nuestra base de datos la realiza firebase.
¿Pero esto es cierto ?
En parte si por qué firebase nos garantiza escalabilidad y una alta disponibilidad sin nosotros hacer nada, pero lo que firebase no nos garantiza es la seguridad de los datos almacenados, los cuales son responsabilidad del desarrollador, en pocas palabras toca escribir algo de backend.

Para poder tener seguridad y establecer unas reglas de acceso a nuestras colecciones de la base de datos, es necesario usar las reglas de firebase, Que son un conjunto de sentencias muy sencillas que se aplican muy fácil desde el editor online que nos ofrece Google. Reglas desde poder guardar o leer información solo cuando el usuario este logueado o reglas según la información que queremos guardar o consultar.

//A continuación, se muestran algunos ejemplos de conjuntos de reglas básicos. 
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

Y el problema no termina aquí, además de tener que escribir algo de backend, estás reglas son algo limitadas y es posible que si tu proyecto llegue a crecer se queden un poco cortas y además algunas reglas pueden generar gastos, más que todo las reglas que consultan información.

2. La base de datos no es suficiente y deberas usar las funciones de firebase

Este punto se relaciona con el anterior, por qué una vez las reglas se convierten en una limitante es necesario hacer uso de las funciones de firebase y poder agregar más complejidad a nuestros proyectos, si no sabes qué son las funciones de firebase, Son nueva funcionalidad que permite crear funciones escritas en JavaScript, en un entorno Node.js, que son invocadas por eventos de Firebase (Cuando se escribe en la base de datos, cuando se crea un usuario, cuando se sube un fichero, cuando se accede a un Endpoint, etc).

Esto nos permite tener una solución Backend as a Service bastante completa con Firebase.

y estás funciones también tienen un costo de uso el cual se traduce a más gasto. Si tu proyecto es pequeño es posible que no sea necesario utilizarlas, pero en el mayor de los casos si quieres garantizar seguridad en tus datos se vuelve necesario usar las funciones.

3. El hosting es limitado

Solo puedes subir HTML, CSS y javascript.

No puedes utilizar un lenguaje de backend como Python, Ruby, PHP ,nodejs, etc

Este hosting está orientado a sitios estáticos con contenido informativo, Si quieres usar código de backend tendrás que hacer uso nuevamente de las funciones de firebase o utilizar alguna máquina virtual en Google cloud, dicho servicio se encuentra asociado a tu cuenta de firebase el cual también tienen sus costos de uso.

4. La manipulación de archivos

Firebase también nos ofrece un servicio de almacenamiento de archivos en la nube, pero este servicio es muy limitado. Solo se limita a leer y escribir archivos, no podemos manipular los archivos no realizar alguna acción con ellos. Como por ejemplo redimensionar una imagen, procesar un vídeo etc. Y para poder tener esa funcionalidad extra, adivinen que necesitamos ¡Si!, Las funciones de firebase.
Lo podríamos procesar los archivos desde el cliente antes de guardarlos, pero no es una práctica recomendada, ya que podemos bloquear nuestro cliente intentando manipular archivos grandes.

5. Es casi imposible cambiarnos a otras tecnologías

Una vez tengas un proyecto utilizando toda la suit de firebase y por razones de la vida sientas que firebase no está cumpliendo tus expectativas, cambiarte a otra tecnología puede ser un dolor de cabeza, ya que la forma en que se trabaja en firebase es única y exclusiva y al mudarte tendrías que reescribir todo tu código incluyendo el frontend, por eso es muy necesario que analices de una forma muy minuciosa si firebase es una buena opción para tu proyecto.

En conclusión firebase es un excelente servicio que nos ofreces muchas ventajas, pero casi nadie habla de las cosas negativas que tiene.

Sin embargo firebase es un servicio que recomiendo pero para realizar tareas muy específicas y no toda la lógica de nuestro proyecto.

Bueno y esas han sido las 5 razones por el cual no recomiendo firebase.

Posted on by:

antojsh profile

Antonio Sierra

@antojsh

I am a Javascript fan, I am in love with this language since I met him.

Discussion

pic
Editor guide