En aquest tema, aprendrem com activar funcions de Firebase. Les funcions de Firebase (Cloud Functions) són fragments de codi que s'executen en resposta a esdeveniments desencadenats per productes de Firebase i altres serveis de Google Cloud. Aquestes funcions poden ser utilitzades per automatitzar tasques, processar dades en temps real, enviar notificacions, entre altres usos.
Conceptes Clau
- Desencadenadors (Triggers): Els desencadenadors són esdeveniments que inicien l'execució d'una funció. Poden ser esdeveniments de la base de dades, autenticació, emmagatzematge, missatgeria, entre altres.
- Funcions HTTP: Aquestes funcions s'executen en resposta a sol·licituds HTTP.
- Funcions de fons (Background Functions): Aquestes funcions s'executen en resposta a esdeveniments de productes de Firebase o altres serveis de Google Cloud.
Tipus de Desencadenadors
- Desencadenadors de la Base de Dades en Temps Real
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.onDataAdded = functions.database.ref('/path/to/data') .onCreate((snapshot, context) => { const data = snapshot.val(); console.log('New data added:', data); return null; });
- Desencadenadors de Firestore
exports.onDocumentCreated = functions.firestore.document('/collection/{docId}') .onCreate((snap, context) => { const newValue = snap.data(); console.log('New document created:', newValue); return null; });
- Desencadenadors d'Autenticació
exports.onUserCreated = functions.auth.user().onCreate((user) => { console.log('New user created:', user.email); return null; });
- Desencadenadors d'Emmagatzematge
exports.onFileUploaded = functions.storage.object().onFinalize((object) => { console.log('New file uploaded:', object.name); return null; });
- Funcions HTTP
exports.helloWorld = functions.https.onRequest((request, response) => { response.send("Hello from Firebase!"); });
Exercici Pràctic
Objectiu
Crear una funció que s'activi quan es crea un nou usuari i enviï un correu electrònic de benvinguda.
Passos
-
Instal·lar el SDK de Firebase Admin:
npm install firebase-admin
-
Crear la funció:
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); const nodemailer = require('nodemailer'); const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: '[email protected]', pass: 'your-email-password' } }); exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => { const mailOptions = { from: '[email protected]', to: user.email, subject: 'Welcome to Our App!', text: `Hello ${user.displayName || ''}, welcome to our app!` }; return transporter.sendMail(mailOptions, (error, info) => { if (error) { return console.log(error); } console.log('Email sent: ' + info.response); }); });
-
Desplegar la funció:
firebase deploy --only functions
Solució
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); const nodemailer = require('nodemailer'); const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: '[email protected]', pass: 'your-email-password' } }); exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => { const mailOptions = { from: '[email protected]', to: user.email, subject: 'Welcome to Our App!', text: `Hello ${user.displayName || ''}, welcome to our app!` }; return transporter.sendMail(mailOptions, (error, info) => { if (error) { return console.log(error); } console.log('Email sent: ' + info.response); }); });
Errors Comuns i Consells
- Error d'Autenticació de Nodemailer: Assegura't que les credencials del teu compte de correu són correctes i que has permès l'accés a aplicacions menys segures si utilitzes Gmail.
- Permisos de Firebase: Verifica que el teu projecte de Firebase té els permisos necessaris per enviar correus electrònics.
- Depuració: Utilitza
console.log
per depurar i verificar que les dades es processen correctament.
Conclusió
En aquesta secció, hem après com activar funcions de Firebase utilitzant diversos desencadenadors. Hem creat una funció pràctica que envia un correu electrònic de benvinguda quan es crea un nou usuari. Aquest coneixement és fonamental per automatitzar tasques i millorar la funcionalitat de les teves aplicacions amb Firebase. En el següent mòdul, explorarem com monitoritzar el rendiment de les nostres aplicacions amb Firebase.
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