f in x
Cloud Functions Firebase con Node.js — Backend Serverless per App Senza Gestione Server
> cd .. / HUB_EDITORIALE > Visualizza in Inglese
Sviluppo di siti web

Cloud Functions Firebase con Node.js — Backend Serverless per App Senza Gestione Server

[2026-07-03] Author: Ing. Calogero Bono
Zenithby Meteora Web Il sistema operativo della tua attività. Social, clienti, prenotazioni e fatture in un'unica piattaforma. Palestre, barber, professionisti. Scopri Zenith Demo gratis · senza carta

Hai un'app Firebase, il frontend funziona, ma da qualche parte devi eseguire logica backend: inviare email, processare pagamenti, validare dati, generare notifiche, sincronizzare database. Fino a ieri avresti acceso un VPS, installato Node.js, configurato Nginx, gestito certificati SSL, fatto backup, e sperato che non crassi a Capodanno. Oggi no. Oggi scrivi una funzione Node.js, fai deploy con un comando, e Google si prende cura del resto. Scalabilità automatica, nessun server da gestire, paghi solo per le esecuzioni. Noi, di Meteora Web, usiamo le Cloud Functions di Firebase ogni giorno per togliere agli imprenditori il peso dell'infrastruttura. E funziona.

Questa guida ti mostra come passare dalla teoria alla pratica: struttura, trigger, deploy, debug, costi. Con codice che funziona davvero.

Cosa rende le Cloud Functions un'alternativa ai server tradizionali?

Le Cloud Functions sono frammenti di codice che girano in ambiente Node.js (ma anche Python, Go, Java, .NET) e vengono eseguiti solo quando serve. Nessun server acceso 24/7, nessuna bolletta fissa. Ogni funzione risponde a un evento: una richiesta HTTP, un documento salvato su Firestore, un file caricato su Storage, un messaggio in coda Pub/Sub. Non devi preoccuparti di sistema operativo, aggiornamenti di sicurezza, bilanciamento del carico. Google si occupa di tutto.

Sponsored Protocol

Perché Node.js? Perché è l'ecosistema più diffuso per Firebase. L'SDK ufficiale per JavaScript/TypeScript è maturo, la community è enorme, e l'integrazione con il resto del tuo stack (React, Vue, Angular) è nativa. Se già usi Firebase per lato client, Node.js ti dà continuità di linguaggio e riuso di moduli.

Come si struttura una Cloud Function in Node.js?

Il progetto base si compone di tre elementi: package.json, un file index.js (o index.ts) con le funzioni esportate, e il file di configurazione .firebaserc e firebase.json. Partiamo da zero.

1. Inizializzare il progetto

Assumi di aver installato Firebase CLI. Se non lo hai: npm install -g firebase-tools.

mkdir my-cloud-functions
cd my-cloud-functions
firebase init functions

Scegli Node.js e conferma. Questo crea la struttura standard con functions/ dentro.

Sponsored Protocol

2. Scrivere una funzione HTTP base

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

exports.helloWorld = functions.https.onRequest((req, res) => {
  const name = req.query.name || 'Mondo';
  res.send(`Ciao ${name}!`);
});

Questa funzione risponde a GET/POST a /helloWorld. L'URL lo ottieni dopo il deploy.

3. Funzione triggerata da Firestore

exports.onNewOrder = functions.firestore
  .document('orders/{orderId}')
  .onCreate(async (snap, context) => {
    const order = snap.data();
    console.log('Nuovo ordine:', order.id);
    // invia email, aggiorna inventario, ecc.
  });

Quali trigger puoi usare e come testarli localmente?

Cloud Functions supporta trigger per:

  • HTTP: richieste HTTPS dirette, con supporto per CORS e body parsing.
  • Firestore: onCreate, onUpdate, onDelete, onWrite.
  • Realtime Database: analogo.
  • Cloud Storage: onObjectFinalized, onObjectDeleted.
  • Pub/Sub: per messaggi asincroni e job schedulati con Cloud Scheduler.
  • Authentication: onCreate per nuovi utenti registrati.

Testarli localmente è semplice con firebase emulators:start. Questo avvia un emulatore HTTP e di Firestore locale. Puoi inviare richieste con curl o usare l'interfaccia web dell'emulatore.

Sponsored Protocol

firebase emulators:start --only functions,firestore

Poi testa la funzione HTTP:

curl http://localhost:5001/my-project/us-central1/helloWorld?name=Cliente

Come gestire dipendenze, variabili d'ambiente e configurazioni?

Le dipendenze vanno nel package.json della cartella functions/. Alcuni pacchetti (come sharp per immagini) richiedono build nativa: assicurati di usarli in ambiente Node.js 18+ e abilitare le funzioni di 2a gen (Cloud Functions v2).

Per le variabili d'ambiente usa il comando:

firebase functions:config:set stripe.key="sk_test_..."

E in codice:

const key = functions.config().stripe.key;

Importante: evita di hardcodare credenziali. Usa sempre il config o Secret Manager (consigliato per valori sensibili).

Come monitorare e fare debug delle Cloud Functions?

Ogni funzione scrive log automaticamente su Cloud Logging. Puoi vederli dalla console Firebase o con firebase functions:log. Per un debug avanzato, abilita il tracing con Cloud Trace o integra con Sentry.

Sponsored Protocol

Noi consigliamo di inserire console.log strutturati:

console.log('order processed', { orderId: snap.id, amount: order.total });

Così i log sono ricercabili su Google Cloud Console. Attenzione ai costi: ogni chiamata a console.log viene fatturata 0.0001€ a documento? No, ma se generi milioni di log il costo sale. Sii selettivo.

Quanto costano le Cloud Functions in produzione?

Il modello di pricing è a invocazione: prime 2 milioni di invocazioni al mese sono gratuite (con Firebase Spark e Blaze). Oltre si pagano $0.40 per milione di invocazioni (Google Cloud Functions standard). Il tempo di esecuzione è gratis fino a 400.000 GB-sec e 200.000 GHz-sec. Per un'app di medie dimensioni (poche decine di migliaia di chiamate/giorno) il costo è trascurabile. Ma attenzione alle funzioni lente: un timeout a 540 secondi può moltiplicare il costo. Ottimizza il codice, usa la cache, riduci i payload.

Sponsored Protocol

Cosa fare adesso

  1. Crea un progetto Firebase (gratuito) e abilita il piano Blaze (pay-as-you-go, necessario per Cloud Functions). Non preoccuparti: con le soglie gratuite non paghi nulla fino a quando non superi le quote.
  2. Installa Firebase CLI e inizializza le funzioni nel tuo progetto.
  3. Scrivi una funzione HTTP che restituisce JSON con dati reali (es. elenco prodotti da Firestore). Esegui deploy con firebase deploy --only functions.
  4. Testala con una richiesta curl o direttamente dal browser. Poi aggiungi un trigger Firestore per aggiornare un contatore ogni volta che un utente si registra.
  5. Monitora i log per verificare che tutto funzioni. Abilita le email di errore su Firebase Console.

Hai appena creato il tuo primo backend serverless. Niente server, niente Nginx, niente SSH. Solo codice. Il resto lo fa Google. Noi di Meteora Web lo usiamo per clienti reali, e funziona.

Per approfondire l'ecosistema Firebase, leggi la nostra guida pillar su Firebase.

Ing. Calogero Bono

> AUTHOR_EXTRACTED

Ing. Calogero Bono

Ingegnere informatico, fondatore di Meteora Web e Zenith OS. System administrator e progettista di piattaforme, app e CMS proprietari, con esperienza in sviluppo full-stack, marketing digitale ed ecosistema Google.
[ Read Full Dossier ]

> METEORA_WEB // WEB AGENCY

Costruiamo la presenza digitale che la tua azienda merita.

Siti web, social, pubblicità online, e-commerce e hosting performante: ingegnerizzati con metodo da ingegneri informatici a Sciacca, per tutta Italia.

> MW_JOURNAL

> READ_ALL()