¿Qué son las funciones de Firebase?
Las funciones de Firebase, también conocidas como Cloud Functions for Firebase, son un servicio de computación sin servidor que permite ejecutar código backend en respuesta a eventos desencadenados por Firebase y otros servicios de Google Cloud. Estas funciones se escriben en JavaScript, TypeScript o Python y se ejecutan en un entorno administrado por Google.
Características clave:
- Sin servidor: No necesitas gestionar servidores ni infraestructura.
- Escalabilidad automática: Las funciones se escalan automáticamente según la demanda.
- Integración con Firebase y Google Cloud: Puedes reaccionar a eventos de Firebase, como cambios en la base de datos, autenticación de usuarios, y más.
Casos de uso comunes
- Procesamiento de datos en tiempo real: Realizar operaciones en datos cuando se escriben en la base de datos.
- Autenticación y autorización: Validar y gestionar usuarios.
- Notificaciones push: Enviar notificaciones a los usuarios en respuesta a eventos específicos.
- Integración con servicios externos: Conectar tu aplicación con APIs de terceros.
Configuración inicial
Paso 1: Instalar Firebase CLI
Para empezar a trabajar con las funciones de Firebase, necesitas instalar la Firebase CLI (Command Line Interface). Abre tu terminal y ejecuta el siguiente comando:
Paso 2: Inicializar el proyecto de Firebase
Navega a tu proyecto y ejecuta el siguiente comando para inicializar Firebase:
Selecciona "Functions" en el menú de opciones y sigue las instrucciones para configurar tu proyecto.
Paso 3: Estructura del proyecto
Una vez inicializado, tu proyecto tendrá una estructura similar a esta:
my-project/ ├── functions/ │ ├── .eslintrc.js │ ├── index.js │ ├── package.json │ └── node_modules/ └── firebase.json
- functions/index.js: Aquí es donde escribirás tus funciones.
- firebase.json: Archivo de configuración de Firebase.
Escribiendo tu primera función
Vamos a escribir una función simple que se ejecuta cuando se crea un nuevo usuario en Firebase Authentication.
Paso 1: Importar Firebase Functions y Admin SDK
Abre functions/index.js
y añade las siguientes líneas:
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp();
Paso 2: Definir la función
Añade la siguiente función para manejar el evento de creación de un nuevo usuario:
exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => { const email = user.email; const displayName = user.displayName; // Aquí puedes añadir la lógica para enviar un correo electrónico console.log(`Bienvenido ${displayName}! Email: ${email}`); return null; });
Paso 3: Desplegar la función
Para desplegar tu función, ejecuta el siguiente comando en tu terminal:
Ejercicio práctico
Ejercicio 1: Crear una función que se ejecute al escribir en la base de datos
- Objetivo: Crear una función que se ejecute cada vez que se añade un nuevo mensaje a la base de datos en tiempo real de Firebase.
- Instrucciones:
- Inicializa un nuevo proyecto de Firebase.
- Escribe una función que se dispare cuando se añade un nuevo mensaje a
/messages/{messageId}
. - La función debe registrar el contenido del mensaje en la consola.
Solución:
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.logNewMessage = functions.database.ref('/messages/{messageId}') .onCreate((snapshot, context) => { const message = snapshot.val(); console.log(`Nuevo mensaje: ${message.text}`); return null; });
Despliega la función con:
Conclusión
En esta lección, hemos aprendido qué son las funciones de Firebase, cómo configurarlas y escribir una función básica. Las funciones de Firebase son una herramienta poderosa para manejar lógica backend sin necesidad de gestionar servidores. En las próximas lecciones, profundizaremos en cómo escribir funciones más complejas y cómo integrarlas con otros servicios de Firebase y Google Cloud.
Curso de Firebase
Módulo 1: Introducción a Firebase
Módulo 2: Autenticación de Firebase
- Introducción a la autenticación de Firebase
- Autenticación por correo electrónico y contraseña
- Autenticación de redes sociales
- Gestión de usuarios
Módulo 3: Base de datos en tiempo real de Firebase
- Introducción a la base de datos en tiempo real
- Lectura y escritura de datos
- Estructura de datos y reglas de seguridad
- Capacidades sin conexión
Módulo 4: Cloud Firestore
- Introducción a Cloud Firestore
- Modelo de datos de Firestore
- Operaciones CRUD
- Consultas avanzadas
- Reglas de seguridad
Módulo 5: Almacenamiento de Firebase
- Introducción al almacenamiento de Firebase
- Subida de archivos
- Descarga de archivos
- Metadatos de archivos y seguridad
Módulo 6: Mensajería en la nube de Firebase
- Introducción a la mensajería en la nube
- Envío de notificaciones
- Manejo de notificaciones
- Características avanzadas de mensajería
Módulo 7: Análisis de Firebase
Módulo 8: Funciones de Firebase
- Introducción a las funciones de Firebase
- Escritura de funciones
- Despliegue de funciones
- Activación de funciones
Módulo 9: Monitoreo de rendimiento de Firebase
- Introducción al monitoreo de rendimiento
- Configuración del monitoreo de rendimiento
- Análisis de datos de rendimiento
Módulo 10: Laboratorio de pruebas de Firebase
- Introducción al laboratorio de pruebas de Firebase
- Ejecución de pruebas
- Análisis de resultados de pruebas