Firebase

La plataforma de desarrollo de aplicaciones de google.

Firebase es una colección de herramientas que nos ofrece Google para el desarrollo de aplicaciones. Podemos dividirla en tres grupos; compilación, lanzamiento y supervisión y participación.

Para poder usarlas solo necesitamos tener una cuenta en Google, no todas las herramientas que pone a disposición son gratuitas y las que lo son tienen unas limitaciones de uso. Lo conveniente es mirarse los precios de Google para ver esas limitaciones.

En el grupo de compilación podemos destacar Firestore Database y Storage. Firestore Database nos proporciona una base de datos no sql y la peculiaridad que pueda tener es que Google te obliga a generar índices para todas las consultas que puedas realizar, que tengan filtros u ordenación. Esto es así para garantizar que las consultas se resuelven rápido y el api nos devolverá un error si la consulta que realizamos no tiene un índice.

Storage nos permite subir ficheros y almacenarlos. Quizás una de las cosas peculiares que me he encontrado a la hora de usarlo es que hay que firmar de forma temporal los ficheros para descargárselos. No sé si es por una limitación del api de PHP o que el almacenamiento sea privado. No he probado más allá de usar el api de PHP con un almacenamiento privado.

En el grupo de compilación hay otras funcionalidades interesantes como Authentication que nos permite crear logins con proveedores o emails, teléfono, etc.. Se puede usar como un single sing-on de Google para añadirlos en nuestras aplicaciones. 

Existen más funcionalidades dentro del grupo de compilación como AppCheck, Functions o Machine learning si encuentro tiempo de probarlas todas quizás las comente por aquí.

En el grupo de Lanzamiento y supervisión nos encontramos Crashlist que quizás es la más interesante de este grupo, ya que nos permite generar informes de errores de nuestra aplicación y un sistema de resolución de errores.

En el grupo de participación podemos ver dos aplicaciones interesantes: A/B Testing y Messaging. El grupo de partición nos ofrece aplicaciones para probar, conectar a usuarios u orientarles dentro de nuestra aplicación.

Por último decir que no todo lo que nos ofrece Firebase se puede usar en web. Varias, como A/B Testing o Crashlytics solo se pueden configurar para dispositivos móviles. En el caso de Crashlytics también para Unity y Flutter.

En resumen, Google nos ofrece una colección de herramientas que nos van a permitir explorar y mejorar la experiencia en nuestras aplicaciones.