Hacer el back-end de tu aplicación Flutter con Firebase


Avatar de Pedro Cortez

¿Qué es Firebase? Firebase es un conjunto de servicios para aplicaciones móviles y de computación en la nube, creado por Google y disponible para desarrolladores. Ahora, ¿qué significa realmente? Imaginemos que tu aplicación es un supermercado. Hay una parte visible que el cliente ve: la fachada de la tienda, los estantes, los productos en venta,…


firebase flutter

¿Qué es Firebase?

Firebase es un conjunto de servicios para aplicaciones móviles y de computación en la nube, creado por Google y disponible para desarrolladores. Ahora, ¿qué significa realmente?

Imaginemos que tu aplicación es un supermercado. Hay una parte visible que el cliente ve: la fachada de la tienda, los estantes, los productos en venta, las cajas, etc. Y hay una parte oculta que, sin embargo, permite que funcione todo el supermercado: los inventarios, las cámaras de refrigeración, las pérdidas, la base de datos donde se guardan tus puntos de fidelidad, etc.

Firebase es, en cierto modo, esa parte oculta. Esta plataforma actúa como un «back-end» donde almacenarás tus datos y los de tus usuarios, para poder gestionarlos y enviárselos cuando los necesiten.

Ejemplo con aplicaciones móviles

Imaginemos ahora que deseas crear una aplicación que permita a los usuarios calificar música. Para distinguir a cada usuario, necesitas permitirles crear cuentas, ¿verdad? Luego, las calificaciones que otorguen a las canciones deberán almacenarse en algún lugar para que puedan verlas en su perfil, modificarlas o eliminarlas más tarde. Finalmente, quizás te gustaría calcular el promedio de todas las calificaciones dadas a cada canción, para ordenarlas por popularidad.

Firebase te permite hacer todo esto: mantener las cuentas de usuario, almacenar y dar acceso a los datos que recolectas y manipularlos mediante funciones automatizadas.

Los productos de Firebase

Como mencionamos, Firebase no es un producto único, sino un conjunto de productos. Así que encontrarás varias herramientas muy prácticas para hacer que tu aplicación sea dinámica.

Firestore

Firestore es la base de datos de Firebase. Aquí es donde puedes almacenar toda la información que necesitas para que tu aplicación funcione. Puedes almacenar:

  • Cadenas de caracteres
  • Números
  • Valores booleanos
  • Listas
  • Mapas
  • Valores temporales
  • Coordenadas geográficas

Es importante comprender dos conceptos clave al usar Firestore: los datos se almacenan en documentos, que a su vez se agrupan en colecciones. Por ejemplo, podrías tener una colección llamada «usuarios», que contiene varios documentos representando a cada usuario, con campos como «nombre», «edad», «correo electrónico», etc.

Crear una base de datos

Si deseas saber más sobre cómo crear una base de datos con Firebase y Flutter, he escrito un artículo sobre cómo configurarla y agregar datos.

Firebase Auth

Firebase Auth es la parte de Firebase que se encarga de almacenar y asegurar la cuenta de tu usuario. Tus usuarios pueden iniciar sesión a través de varias opciones, tales como:

  • Correo electrónico + contraseña
  • Cuenta de Google
  • Cuenta de Apple
  • Número de teléfono
  • Cuenta de Facebook
  • Cuenta de Twitter, entre otras.

Cada método de inicio de sesión requiere implementar funciones específicas en tu aplicación y te brinda acceso a diferentes tipos de información. Por ejemplo, puedes acceder a la foto de perfil de un usuario que inicie sesión con Google.

Crear perfiles de usuario e iniciar sesión

Si deseas saber más sobre cómo crear perfiles de usuario para tu aplicación e implementar un sistema de inicio de sesión, te invito a leer mi guía completa sobre el tema.

Fonctions Cloud

A veces es necesario manipular un conjunto de datos para obtener algo nuevo. Por ejemplo, podrías querer calcular el promedio de un conjunto de calificaciones, asegurarte de que los datos enviados desde el front-end cumplen con un cierto formato antes de almacenarlos en tu base de datos, o incluso enviar correos electrónicos automáticos a tus usuarios cada cierto tiempo.

Todo esto no puede hacerse desde la interfaz de tu aplicación, y aquí es donde entran las Funciones en la Nube (Cloud Functions). Gracias a este servicio, podrás crear funciones desde Visual Studio y exportarlas a Firebase, lo que te permitirá manipular tu base de datos.

Google Analytics

Poner tu aplicación en línea es un gran paso, pero mejorarla con el tiempo es igual de importante. Para esto, necesitas saber qué hacen tus usuarios en la app, qué los hace quedarse y qué los hace abandonar. Por eso, Firebase también incluye Google Analytics (anteriormente Firebase Analytics), una herramienta que te permite medir las acciones de tus usuarios.

¿Firebase es gratuito?

Firebase es gratuito… hasta cierto punto. Cada acción que realizas es medida, y una vez que superas ciertos límites, debes pagar por cada acción adicional. Sin embargo, los precios son relativamente asequibles:

Precios de los servicios ofrecidos por Firebase

ServicioUso gratuitoTarifa
Firestore
Almacenamiento1 GiB de datos0.1725 USD por GiB/mes
Consumo de datos10 GiB por mes0.1725 USD por GiB/mes
Escrituras/actualizaciones20K documentos por día0.1042 USD por 100,000 docs
Lecturas50K documentos enviados al front-end por día0.0345 USD por 100,000 docs
Eliminaciones20K documentos por día0.0115 USD por 100,000 docs
Autenticación
SMS enviados10 SMS por díaDepende del país, consultar aquí
Usuarios mensuales50K usuarios al mesVaría según cantidad de usuarios
Funciones en la Nube
Invocaciones2M por mes0.40 USD por millón
Tiempo de cómputo400K segundosVaría según necesidad
Cloud Build120 minutos diarios0.003 USD por minuto

Este cuadro cubre solo los costos más comunes. Para ver el detalle completo de los precios de Firebase, consulta esta página.

Instalar Firebase con Flutter

Para instalar Firebase, tienes dos opciones:

  1. Instalarlo manualmente;
  2. Usar un paquete.

Ambas opciones funcionan bien, aunque la segunda es más rápida, la primera tiene la ventaja de no hacerte depender de un paquete. Te sugiero probar ambas para ser más versátil.

Antes de instalar Firebase en tu aplicación Flutter, te recomiendo cambiar el bundle.id. Esto se debe a que, si decides modificarlo después, será más complicado volver a conectar tu base de datos.

Avatar de Pedro Cortez