Firebase: setup primi servizi
Firebase e la piattaforma backend-as-a-service di Google: offre autenticazione, database in real time, notifiche, analytics, hosting, cloud functions e molto altro. Per un'app mobile rappresenta spesso la scelta più rapida per partire senza scrivere un backend dedicato. Vediamo come integrare i primi servizi in pochi passaggi.
Creazione del progetto
Vai sulla console Firebase, crea un nuovo progetto, abilita Google Analytics se vuoi tracciare gli eventi. Aggiungi le app iOS e Android indicando il bundle id o package name. Scarica i file di configurazione GoogleService-Info.plist e google-services.json e inseriscili nel progetto Xcode e Gradle.
Integrazione SDK
Su Android usa il plugin gradle google-services e aggiungi la BoM Firebase per gestire le versioni. Su iOS usa SwiftPM o CocoaPods con i pod necessari (FirebaseCore obbligatorio, poi i singoli moduli). Inizializza Firebase nel didFinishLaunching o nell'Application onCreate.
Servizi consigliati per partire
Authentication (login email, social, telefono), Firestore (database NoSQL real time), Crashlytics (monitoraggio crash), Remote Config (feature flag), Analytics (eventi). Iniziare con questi 5 servizi copre l'80% delle esigenze di un MVP mobile.
Privacy Manifest e Apple
Dal 2024 Apple richiede Privacy Manifest per ogni SDK terzo. Firebase 10.20+ fornisce automaticamente i manifest per tutti i moduli ufficiali. Verifica che ogni dipendenza terza nel progetto fornisca il proprio. Senza Privacy Manifest, App Store Connect rifiuta l'upload con errore esplicito.
App Check
App Check verifica che le richieste arrivino dalla tua app autentica, non da bot o reverse engineering. Si integra con App Attest (iOS), Play Integrity (Android) e reCAPTCHA Enterprise (Web). Senza App Check, le tue API Firebase pubbliche (Firestore, Functions, Storage) sono vulnerabili ad abuse.
Costi e quote
Il piano Spark gratuito copre la maggior parte degli MVP, ma alcuni servizi (Functions, Hosting custom domain con SSL) richiedono Blaze. Imposta budget alert per evitare sorprese: una Cloud Function in loop infinito puo costare migliaia di euro in poche ore. Firebase Local Emulator Suite permette sviluppo offline gratuito con tutti i servizi.
Sicurezza delle regole
Le Security Rules di Firestore e Realtime Database sono il pilastro della sicurezza. Default deny, poi aggiungi le eccezioni minime necessarie. Testa con il Rules Playground e con unit test (firebase-functions-test). Una regola "read: true" su una collection sensibile puo esporre tutti i dati.
Multi-environment setup
Crea progetti Firebase separati per dev, staging, production. Bundle id e package name distinti. Configurazione tramite build variants (Android) e Build Configurations (iOS). Mai usare il progetto di prod per sviluppo: rischi di poppare dati reali. Service account separati per accesso CI a ogni ambiente.
Local Emulator Suite
Firebase Local Emulator Suite emula localmente Firestore, Auth, Functions, Storage. Sviluppi e testi senza toccare i dati di produzione. Importazione/export di dati per test riproducibili. Integrazione CI permette di girare test end-to-end senza dipendenza da rete o costi cloud. Strumento fondamentale per team mobile seri.
Procedura passo-passo
- Crea il progetto su console.firebase.google.com.
- Aggiungi le app per piattaforma (iOS, Android, Web).
- Scarica i file di configurazione e collegali al progetto.
- Installa l'SDK tramite SwiftPM o Gradle BoM.
- Inizializza Firebase nell'entry point dell'app.
- Abilita i servizi desiderati in console (Auth, Firestore, ecc.).
- Verifica nel Realtime Dashboard l'arrivo dei primi eventi.
Security Rules avanzate
Le Security Rules di Firestore supportano: pattern matching su path, conditions su request.auth, validazione dei dati con request.resource.data, custom claims. Esempi: utente puo leggere solo propri documenti (resource.data.userId == request.auth.uid), admin puo scrivere ovunque (request.auth.token.admin == true). Test con il Rules Playground e unit test (firebase-functions-test). Errore comune: regola "allow read: if true" su collection sensibili, equivalente a database pubblico.
Errori comuni e come risolverli
- BoM disallineata: usa sempre la BoM più recente per evitare conflitti.
- File config nel ramo sbagliato: assicurati che sia incluso nel target di build.
- Bundle id non corrisponde: ricontrolla per non perdere i dati.
- Privacy Manifest mancante: Firebase 10+ fornisce manifest ufficiali.
- App Check non configurato: rischi abuse delle API Firebase pubbliche.
Domande frequenti
D: Firebase e gratuito?
R: Il piano Spark e gratuito con quote generose; per progetti seri si passa al piano Blaze pay-as-you-go.
D: Posso usare Firebase senza Google Analytics?
R: Si, ma alcune feature come Crashlytics e Predictions funzionano meglio con Analytics attivo.
D: Firebase e adatto a progetti enterprise?
R: Si, ma valuta limiti su latenza, costo a scala e residency dei dati.
D: Firebase puo essere usato con backend custom?
R: Si, tramite Admin SDK e Cloud Functions. Combina backend tradizionale con Firebase per autenticazione e analytics.
Roadmap di adozione
Setup iniziale: Auth + Firestore + Crashlytics + Analytics. Mese 2-3: aggiungi Remote Config e A/B Testing. Mese 6: valuta Cloud Functions per logica server-side. Migrazione graduale a App Check per sicurezza. Iterazione continua: Firebase aggiunge servizi regolarmente, valuta integrazioni nuove ogni 6 mesi.
Hai bisogno di aiuto?
Se vuoi sviluppare la tua app con G Tech Group, scrivici tramite il modulo di contatto.