En este tema, aprenderemos cómo activar funciones en Firebase Functions. Firebase Functions permite ejecutar código backend en respuesta a eventos desencadenados por Firebase y otros servicios de Google Cloud. Las funciones pueden ser activadas por eventos como cambios en la base de datos, autenticación de usuarios, cambios en el almacenamiento y más.

Conceptos Clave

  1. Eventos de Firebase: Acciones específicas que ocurren en los servicios de Firebase, como la creación de un nuevo usuario o la actualización de un documento en Firestore.
  2. Funciones HTTP: Funciones que se activan mediante solicitudes HTTP.
  3. Funciones de Firestore: Funciones que se activan mediante cambios en los documentos de Firestore.
  4. Funciones de Realtime Database: Funciones que se activan mediante cambios en la base de datos en tiempo real.
  5. Funciones de Authentication: Funciones que se activan mediante eventos de autenticación de usuarios.
  6. Funciones de Storage: Funciones que se activan mediante cambios en el almacenamiento de Firebase.

Ejemplo Práctico: Activación de Funciones

  1. Configuración Inicial

Antes de comenzar, asegúrate de tener Firebase CLI instalado y configurado en tu proyecto. Si no lo has hecho, sigue estos pasos:

# Instalar Firebase CLI
npm install -g firebase-tools

# Iniciar sesión en Firebase
firebase login

# Inicializar Firebase Functions en tu proyecto
firebase init functions

  1. Funciones HTTP

Las funciones HTTP se activan mediante solicitudes HTTP. Aquí hay un ejemplo de una función HTTP simple:

const functions = require('firebase-functions');

// Función HTTP que responde con "Hello, World!"
exports.helloWorld = functions.https.onRequest((request, response) => {
  response.send("Hello, World!");
});

Para desplegar esta función, usa el siguiente comando:

firebase deploy --only functions

  1. Funciones de Firestore

Las funciones de Firestore se activan mediante cambios en los documentos de Firestore. Aquí hay un ejemplo de una función que se activa cuando se crea un nuevo documento en la colección users:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.onUserCreate = functions.firestore
  .document('users/{userId}')
  .onCreate((snap, context) => {
    const newValue = snap.data();
    console.log('New user created:', newValue);
    return null;
  });

  1. Funciones de Realtime Database

Las funciones de Realtime Database se activan mediante cambios en la base de datos en tiempo real. Aquí hay un ejemplo de una función que se activa cuando se crea un nuevo nodo en la referencia messages:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.onMessageCreate = functions.database
  .ref('/messages/{messageId}')
  .onCreate((snapshot, context) => {
    const newValue = snapshot.val();
    console.log('New message created:', newValue);
    return null;
  });

  1. Funciones de Authentication

Las funciones de Authentication se activan mediante eventos de autenticación de usuarios. Aquí hay un ejemplo de una función que se activa cuando se crea un nuevo usuario:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.onUserCreate = functions.auth.user().onCreate((user) => {
  console.log('New user created:', user);
  return null;
});

  1. Funciones de Storage

Las funciones de Storage se activan mediante cambios en el almacenamiento de Firebase. Aquí hay un ejemplo de una función que se activa cuando se sube un nuevo archivo:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.onFileUpload = functions.storage
  .object()
  .onFinalize((object) => {
    console.log('New file uploaded:', object);
    return null;
  });

Ejercicio Práctico

Ejercicio 1: Crear una Función HTTP

  1. Crea una función HTTP que responda con "Hello, Firebase!".
  2. Despliega la función y prueba la URL proporcionada por Firebase.

Solución

const functions = require('firebase-functions');

exports.helloFirebase = functions.https.onRequest((request, response) => {
  response.send("Hello, Firebase!");
});

Para desplegar la función:

firebase deploy --only functions

Ejercicio 2: Crear una Función de Firestore

  1. Crea una función que se active cuando se actualice un documento en la colección posts.
  2. La función debe registrar el contenido actualizado del documento.

Solución

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.onPostUpdate = functions.firestore
  .document('posts/{postId}')
  .onUpdate((change, context) => {
    const newValue = change.after.data();
    console.log('Post updated:', newValue);
    return null;
  });

Conclusión

En esta sección, hemos aprendido cómo activar funciones en Firebase Functions utilizando diferentes tipos de eventos. Hemos cubierto funciones HTTP, funciones de Firestore, funciones de Realtime Database, funciones de Authentication y funciones de Storage. Con estos conocimientos, puedes crear funciones backend que respondan a una variedad de eventos en tu aplicación Firebase.

En el próximo módulo, exploraremos cómo monitorear y analizar el rendimiento de tus funciones utilizando las herramientas de monitoreo de Firebase.

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