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

  1. 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.
  2. Funcions HTTP: Aquestes funcions s'executen en resposta a sol·licituds HTTP.
  3. 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

  1. 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;
    });

  1. 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;
    });

  1. Desencadenadors d'Autenticació

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

  1. Desencadenadors d'Emmagatzematge

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

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

  1. Instal·lar el SDK de Firebase Admin:

    npm install firebase-admin
    
  2. 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);
        });
    });
    
  3. 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

  1. 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.
  2. Permisos de Firebase: Verifica que el teu projecte de Firebase té els permisos necessaris per enviar correus electrònics.
  3. 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

Mòdul 3: Base de dades en temps real de Firebase

Mòdul 4: Cloud Firestore

Mòdul 5: Emmagatzematge de Firebase

Mòdul 6: Missatgeria en el núvol de Firebase

Mòdul 7: Analítica de Firebase

Mòdul 8: Funcions de Firebase

Mòdul 9: Monitoratge del rendiment de Firebase

Mòdul 10: Laboratori de proves de Firebase

Mòdul 11: Temes avançats de Firebase

© Copyright 2024. Tots els drets reservats