¿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

  1. Procesamiento de datos en tiempo real: Realizar operaciones en datos cuando se escriben en la base de datos.
  2. Autenticación y autorización: Validar y gestionar usuarios.
  3. Notificaciones push: Enviar notificaciones a los usuarios en respuesta a eventos específicos.
  4. 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:

npm install -g firebase-tools

Paso 2: Inicializar el proyecto de Firebase

Navega a tu proyecto y ejecuta el siguiente comando para inicializar Firebase:

firebase init

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:

firebase deploy --only functions

Ejercicio práctico

Ejercicio 1: Crear una función que se ejecute al escribir en la base de datos

  1. 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.
  2. 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:

firebase deploy --only functions

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

Módulo 3: Base de datos en tiempo real de Firebase

Módulo 4: Cloud Firestore

Módulo 5: Almacenamiento de Firebase

Módulo 6: Mensajería en la nube de Firebase

Módulo 7: Análisis de Firebase

Módulo 8: Funciones de Firebase

Módulo 9: Monitoreo de rendimiento de Firebase

Módulo 10: Laboratorio de pruebas de Firebase

Módulo 11: Temas avanzados de Firebase

© Copyright 2024. Todos los derechos reservados