¿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.
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.
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
Servicio | Uso gratuito | Tarifa |
---|---|---|
Firestore | ||
Almacenamiento | 1 GiB de datos | 0.1725 USD por GiB/mes |
Consumo de datos | 10 GiB por mes | 0.1725 USD por GiB/mes |
Escrituras/actualizaciones | 20K documentos por día | 0.1042 USD por 100,000 docs |
Lecturas | 50K documentos enviados al front-end por día | 0.0345 USD por 100,000 docs |
Eliminaciones | 20K documentos por día | 0.0115 USD por 100,000 docs |
Autenticación | ||
SMS enviados | 10 SMS por día | Depende del país, consultar aquí |
Usuarios mensuales | 50K usuarios al mes | Varía según cantidad de usuarios |
Funciones en la Nube | ||
Invocaciones | 2M por mes | 0.40 USD por millón |
Tiempo de cómputo | 400K segundos | Varía según necesidad |
Cloud Build | 120 minutos diarios | 0.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:
- Instalarlo manualmente;
- 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.