Què són les funcions de Firebase?
Les funcions de Firebase, també conegudes com a Cloud Functions for Firebase, són una solució de computació sense servidor que permet executar codi backend en resposta a esdeveniments desencadenats per Firebase i altres serveis de Google Cloud. Aquestes funcions s'executen en un entorn gestionat, eliminant la necessitat de gestionar servidors.
Característiques clau:
- Execució basada en esdeveniments: Les funcions es poden activar per esdeveniments com canvis en la base de dades, autenticació d'usuaris, esdeveniments d'analítica, etc.
- Escalabilitat automàtica: Les funcions s'escalen automàticament per gestionar la càrrega de treball.
- Integració amb altres serveis de Firebase i Google Cloud: Les funcions poden interactuar amb altres serveis com Firestore, Realtime Database, Firebase Authentication, etc.
Casos d'ús comuns
- Validació i processament de dades: Validar i processar dades abans de guardar-les a la base de dades.
- Notificacions push: Enviar notificacions push en resposta a esdeveniments específics.
- Integració amb serveis externs: Connectar-se amb APIs externes per obtenir o enviar dades.
- Automatització de tasques: Automatitzar tasques com l'enviament de correus electrònics, la generació de miniatures d'imatges, etc.
Configuració inicial
Requisits previs
- Node.js i npm: Les funcions de Firebase es desenvolupen en Node.js. Assegura't de tenir instal·lats Node.js i npm.
- Firebase CLI: La interfície de línia de comandes de Firebase és necessària per desplegar les funcions.
Instal·lació de Firebase CLI
Inicialització del projecte de funcions
- Crea un projecte de Firebase a la consola de Firebase.
- Inicialitza les funcions al teu projecte local:
Durant la inicialització, se't demanarà que seleccionis el projecte de Firebase i el llenguatge de programació (JavaScript o TypeScript).
Estructura del projecte
Després d'inicialitzar el projecte, tindràs una estructura de directoris similar a aquesta:
my-project/ ├── functions/ │ ├── node_modules/ │ ├── lib/ (si utilitzes TypeScript) │ ├── src/ (si utilitzes TypeScript) │ ├── index.js (si utilitzes JavaScript) │ ├── package.json │ └── tsconfig.json (si utilitzes TypeScript) └── .firebaserc └── firebase.json
Exemple bàsic de funció
A continuació, es mostra un exemple bàsic d'una funció que respon a una sol·licitud HTTP:
Codi de la funció
const functions = require('firebase-functions'); // Funció HTTP bàsica exports.helloWorld = functions.https.onRequest((request, response) => { response.send("Hello, World!"); });
Desplegament de la funció
Per desplegar la funció, utilitza el següent comandament:
Després del desplegament, la funció estarà disponible a una URL proporcionada per Firebase.
Exercici pràctic
Objectiu
Crea una funció que enviï una notificació push quan es crea un nou usuari.
Passos
- Inicialitza el projecte de funcions si no ho has fet ja.
- Afegeix el codi següent a
index.js
:
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.sendWelcomeNotification = functions.auth.user().onCreate((user) => { const payload = { notification: { title: 'Benvingut a la nostra aplicació!', body: `Hola, ${user.displayName || 'usuari'}! Gràcies per registrar-te.`, }, }; return admin.messaging().sendToTopic('allUsers', payload) .then((response) => { console.log('Notificació enviada amb èxit:', response); }) .catch((error) => { console.log('Error enviant la notificació:', error); }); });
- Desplega la funció:
Solució
El codi anterior crea una funció que s'activa quan es crea un nou usuari (functions.auth.user().onCreate
). La funció envia una notificació push a tots els usuaris subscrits al tema allUsers
.
Resum
En aquesta secció, hem introduït les funcions de Firebase, hem configurat el projecte inicial i hem creat una funció bàsica. També hem vist un exemple pràctic d'una funció que envia una notificació push quan es crea un nou usuari. En les següents seccions, explorarem com escriure funcions més complexes i com gestionar el desplegament i l'activació de funcions.
Curs de Firebase
Mòdul 1: Introducció a Firebase
Mòdul 2: Autenticació de Firebase
- Introducció a l'autenticació de Firebase
- Autenticació amb correu electrònic i contrasenya
- Autenticació amb xarxes socials
- Gestió d'usuaris
Mòdul 3: Base de dades en temps real de Firebase
- Introducció a la base de dades en temps real
- Lectura i escriptura de dades
- Estructura de dades i regles de seguretat
- Capacitats fora de línia
Mòdul 4: Cloud Firestore
- Introducció a Cloud Firestore
- Model de dades de Firestore
- Operacions CRUD
- Consultes avançades
- Regles de seguretat
Mòdul 5: Emmagatzematge de Firebase
- Introducció a l'emmagatzematge de Firebase
- Carregar fitxers
- Descarregar fitxers
- Metadades de fitxers i seguretat
Mòdul 6: Missatgeria en el núvol de Firebase
- Introducció a la missatgeria en el núvol
- Enviar notificacions
- Gestionar notificacions
- Funcions avançades de missatgeria
Mòdul 7: Analítica de Firebase
Mòdul 8: Funcions de Firebase
Mòdul 9: Monitoratge del rendiment de Firebase
- Introducció al monitoratge del rendiment
- Configuració del monitoratge del rendiment
- Analitzar dades de rendiment