Guía de Firebase | ¿Qué es Firebase? (parte I)

Tabla de contenidos

Firebase es una plataforma de servicios en la nube, desarrollada por Google. Está enfocada a facilitar el desarrollo de aplicaciones móviles, con funcionalidades como por ejemplo, una herramienta de autenticación, envío de notificaciones, análisis de visitas, proporcionar una base de datos en la nube o, incluso, la monetización de la app.

En Pizzacorn desarrollamos nuestros proyectos utilizando la plataforma de Firebase, ya que nos facilita mucho el trabajo. Así conseguimos ahorrar tiempo y que las aplicaciones estén listas en plazos más cortos. Pero además, al ser un producto de una empresa tan puntera como Google, nos beneficiamos de que las aplicaciones funcionan perfectamente en cuanto a sincronización, autentificación o envío de notificaciones. Pero, lo más importante, tienen unos estándares de seguridad muy altos.

Su catálogo de servicios es muy amplio. Hemos creado una serie de artículos para ir desgranando este catálogo y ver en qué consiste cada herramienta una por una. Algunas de ellas son gratuitas aunque hasta cierto volumen de uso (aun así, más que suficiente para la mayoría de aplicaciones), pero otras son de pago. Enlazo un artículo que habla del plan Blaze (plan de pago de Firebase) por si necesitas saber más.

Herramientas de compilación

Una vez hemos creado nuestro proyecto de Firebase, nos aparece un panel de control con todas las herramientas a nuestra disposición. A la izquierda de la pantalla, veremos varios menús desplegables. El primero de ellos es Compilación, y esto es lo que contiene:

Vistos así, quizá sólo por el nombre no nos dicen nada. Por eso, para tener una visión general de qué hace cada uno, los agruparemos según su utilidad en la siguiente lista:

  • Verificar el acceso a la aplicación por parte de usuarios o de otras aplicaciones: Authentication y App Check
  • Gestión de bases de datos: Realtime Database y Cloud Firestore
  • Agregar funcionalidades extra: Firebase Extensions
  • Soluciones de almacenamiento de archivos: Cloud Storage
  • Alojamiento para aplicaciones web: Hosting
  • Mejoras en la incorporación de servicios de Firebase: Cloud Functions
  • Kit de aprendizaje automático (AA) para incrementar potentes funcionalidades: Machine Learning (beta)
  • Actualizaciones remotas de la aplicación: Remote Config

Authentication

Esta herramienta ayuda a gestionar el acceso de los usuarios mediante varias vías. La más común es la de email y contraseña, pero también permite que el usuario pueda acceder a la aplicación usando su número de teléfono, su cuenta de Google, Facebook, Twitter o GitHub, por poner unos ejemplos.

Además de verificar que existe ese usuario y que está introduciendo la contraseña correcta, implanta todo lo relacionado con la autenticación: recuperación de contraseñas, posibilidad de mantener la sesión iniciada tras cerrar la aplicación, fusión de cuentas, gestión de errores, etc.

App Check

Esta herramienta proporciona protección frente a intrusiones cuando tu aplicación se comunica con otras a través de APIs, como por ejemplo, Google Maps o Instragram.

De esta manera, ayuda a evitar abusos como el fraude de facturación, la suplantación de identidad (phishing), el robo de identidad de apps y la intoxicación de datos.

Realtime Database

Proporciona una estructura para almacenar toda la información de la aplicación siguiendo el modelo de bases de datos NoSQL. Los datos se organizan en «colecciones» y «documentos», en vez de en tablas.

Esta base de datos se almacenaría en la nube (o sea, en los servidores de Google) logrando así una sincronización de la aplicación en todos los dispositivos en que se use. Además, ahorra todo el trabajo de mantenimiento de servidores.

Otra característica es que los datos se guardan en la caché del dispositivo, permitiendo su uso offline en momentos puntuales, como por ejemplo, una pérdida de conexión. Al recuperar la conexión, los datos que hayan cambiado en local se sincronizan con la base de datos en remoto.

Además, implementa normas de seguridad para restringir qué tipo de usuario puede acceder a los datos, modificarlos o eliminarlos.

Cloud Firestore

Es muy parecido al servicio anterior, ya que también es una estructura para montar nuestra base de datos. Se desarrolló posteriormente a Realtime Database, por lo que incorpora algunas mejoras, como por ejemplo, tiene una escalabilidad mayor. En la documentación de Firebase, explican estas diferencias con detalle. Esto no significa que haya que descartar Realtime Database, dependiendo de las características de nuestra aplicación, nos puede servir una opción u otra.

Remote Config

Supongamos por ejemplo, que queremos cambiar los colores de determinada pantalla de la aplicación o bien. Con esta herramienta, podremos modificar nuestra aplicación y el cambio se aplicará en unos pocos instantes, sin necesidad de reescribir el código y volver a desplegar o publicar la aplicación.

Además, permite que estas actualizaciones se muestren sólo a ciertos usuarios, por ejemplo, a aquellos que realizaron compras en el último mes o a los que tienen contratada una suscripción VIP.

Permite también lanzar versiones experimentales, para que cierto segmento de usuarios las pruebe y analizar su aceptación.

Firebase Extensions

Firebase proporciona un catálogo de extensiones para añadir funcionalidades extra, como envío automático de emails cuando se produzca determinado evento, ajuste del tamaño y posición de las imágenes, etc. Esta es una de las herramientas que sólo están disponibles en el plan de pago o plan Blaze.

Dentro del paquete de extensiones hay algunas muy interesantes, como por ejemplo, Algolia. Esta extensión es especialmente apropiada si tu aplicación es una tienda virtual. Gracias a ella, podemos implantar un buscador de texto libre en la aplicación; es decir, el típico buscador que utiliza un usuario para buscar un producto por sus características, por ejemplo, «pantalón gris talla M».

Otra extensión muy utilizada es la de envío de emails cuando se produce determinado evento, se llama Trigger Email. Un ejemplo sería enviar un email cuando un usuario realiza un determinado pedido o reserva un alojamiento, con toda la información de la transacción realizada.

Cloud Storage

Este es un servicio de almacenamiento en la nube para aquellas aplicaciones en las que los usuarios suban fotos o vídeos. Estos archivos suelen ser bastante pesados y ocuparían mucho espacio en nuestros servidores, de ahí la gran ventaja de contar con este servicio de almacenamiento. Además, al estar en la nube, la sincronización entre dispositivos es sencilla.

Los archivos se transfieren mediante conexión segura, como no podía ser de otra manera. Los usuarios pueden subir y descargar archivos con total tranquilidad. Pero se pueden añadir reglas específicas de uso, por ejemplo, establecer que sólo ciertos usuarios puedan descargar archivos.

Otra ventaja es que, si se está transfiriendo un archivo y en mitad del proceso se pierde la conexión, al recuperarla la transferencia se reanuda en el mismo punto en que se interrumpió. Es decir, no comienza desde el principio. Este es un supuesto muy habitual cuando se utilizan las redes móviles para la descarga o transferencia de archivos.

Cloud Storage es escalable, llegando incluso a capacidades de petabytes. En otras palabras, tiene espacio de almacenamiento para aburrir.

Cloud Functions

Esta herramienta nos permite implementar los productos de Firebase a través de funciones escritas en código (generalmente, JavaScript en entorno Node.js) de manera que se invoquen al producirse determinado evento.

Un posible caso sería el envío de una notificación cuando un usuario tiene un nuevo comentario, enlazando el servicio Cloud Messaging con un trigger de la base de datos.

Es una forma de optimizar la implantación de servicios de Firebase.

Hosting

Este servicio proporciona un hosting seguro y rápido para las aplicaciones web, el contenido dinámico y estático, y los microservicios. Es, por tanto, una herramienta enfocada sólo a las aplicaciones web. La idea es que la aplicación se despliegue en Internet de manera sencilla, simplemente escribiendo un comando.

Las aplicaciones se despliegan rápidamente y mediante conexiones seguras, ya que Firebase Hosting incluye SSL sin necesidad de configuración extra.

Entre otras ventajas, este servicio permite emular y compartir los cambios antes de publicarlos. Además, está integrado con GitHub, de manera que se consigue un despliegue continuo (habría que configurar GitHub Actions).

Machine Learning

Firebase ha lanzado su SDK de aprendizaje automático (AA) para dotar a las aplicaciones de potentes funcionalidades extra. Esta herramienta está disponible para aplicaciones iOS y Android.

Ejemplos de casos de uso que se podrían conseguir son:

  • Reconocimiento de texto
  • Etiquetado de imágenes
  • Detección y seguimiento de objetos
  • Detección de rostro y seguimiento de contornos
  • Escaneo de códigos de barras
  • Identificación de idiomas
  • Traducción
  • Respuesta inteligente
Comparte el post
Pizzacorn.es

Pizzacorn.es

Diseño y desarrollo multiplataformas

Buscar
Más articulos