Che cos’è Firebase? Tutti i segreti svelati

What is Firebase_ All the secrets unlocked
What is Firebase_ All the secrets unlocked

Questo articolo fornirà un’analisi approfondita di Firebase, dei suoi principali pro e contro, della struttura dei prezzi e delle caratteristiche principali.

Lo sviluppo di applicazioni mobili robuste e di alta qualità è un’attività che richiede molta dedizione, ma soprattutto una piattaforma di sviluppo potente e ricca di funzionalità.

Firebase, della scuderia di Google, è una di queste piattaforme che ha conquistato gli sviluppatori di tutto il mondo.

Firebase offre agli sviluppatori molte opzioni per creare applicazioni altamente funzionali e versatili per il web, per Android e per la piattaforma iOS.

Mentre diversi concorrenti sono presenti nello spazio di sviluppo delle app, Firebase dialoga costantemente con le migliori piattaforme attualmente disponibili.

Continuate a leggere per scoprire come funziona Firebase e per avere una visione approfondita delle sue funzionalità.

Cos’è Firebase e come funziona?

Che cos’è Google Firebase? È una piattaforma di sviluppo di applicazioni mobili di Google con potenti funzioni per lo sviluppo, la gestione e il miglioramento delle applicazioni. Firebase è una piattaforma backend per la creazione di applicazioni web e mobili.(1)

Firebase è fondamentalmente una raccolta di strumenti su cui gli sviluppatori possono contare per creare ed espandere le applicazioni in base alla domanda.

Firebase mira a risolvere tre problemi principali per gli sviluppatori:

  • Creare un’app, velocemente
  • Rilasciare e monitorare un’applicazione in tutta tranquillità
  • Coinvolgere gli utenti,

Gli sviluppatori che si affidano a questa piattaforma ottengono l’accesso a servizi che avrebbero dovuto sviluppare da soli, consentendo loro di concentrarsi sulla realizzazione di solide esperienze applicative.

Alcune delle caratteristiche principali della piattaforma Google Firebase includono database, autenticazione, messaggi push, analisi, archiviazione di file e molto altro.

Poiché i servizi sono ospitati nel cloud, gli sviluppatori possono eseguire senza problemi lo scaling on-demand. Firebase è attualmente una delle principali piattaforme di sviluppo di app a cui si affidano gli sviluppatori di tutto il mondo.

CategoriaDettagli
Panoramica di FirebaseUna piattaforma di sviluppo di applicazioni mobili di Google con funzioni per lo sviluppo e il miglioramento delle app.
Caratteristiche principali di FirebaseInclude database, autenticazione, messaggi push, analisi, archiviazione di file, ecc.
Posizione della base di fuocoSede centrale a San Francisco, California.
Fondatori di FirebaseFondata da Andrew Lee e James Tamplin nel 2011.
Applicazioni popolari che utilizzano FirebaseAlibaba, New York Times, Todoist, Le Figaro, eBay Motors.
Tipi di applicazioni che possono essere sviluppateApplicazioni Android, iOS e Web.
A cosa serve Firebase?I casi d’uso più comuni di Firebase includono MVP, applicazioni in tempo reale, applicazioni di chat/messaggistica, ottimizzazione degli annunci, condivisione di foto, applicazioni aziendali.
Alternative a FirebaseBack4app, Backendless, AWS Amplify, Parse.

Storia di Firebase

La storia di Firebase è piuttosto affascinante e, come quella di molte startup, ha avuto molti alti e bassi. È nata da Envolve, una startup fondata nel 2011 da Andrew Lee e James Tamplin.(2, 3, 4)

L’azienda offriva agli sviluppatori un’API per facilitare l’integrazione della chat online nei siti web. I fondatori di Envolve hanno scoperto che il loro servizio di chat veniva utilizzato per trasmettere messaggi non di chat.

Gli sviluppatori si affidavano alla piattaforma per la sincronizzazione dei dati delle applicazioni in tempo reale. Lee e Tamplin hanno deciso di differenziare l’architettura in tempo reale dal sistema di chat, il che ha portato alla fondazione di Firebase nel 2011. La piattaforma Firebase backend as a service è stata lanciata pubblicamente nell’aprile 2012.

Il primo prodotto Firebase lanciato è stato il Realtime Database. Si tratta di un’API per la sincronizzazione dei dati delle applicazioni tra dispositivi Android, Web e iOS. Gli sviluppatori di applicazioni possono affidarsi alla piattaforma per creare applicazioni collaborative in tempo reale.

Nel 2012 l’azienda ha accumulato un finanziamento di avviamento di oltre 1 milione di dollari da parte di investitori, tra cui Greylock Partners, New Enterprise Associates, Flybridge Capital Partners e Founder Collective. L’azienda ha inoltre raccolto un finanziamento di serie A di 5,6 milioni di dollari nel giugno 2013 da Flybridge Capital Partners e Union Square Ventures.(5)

Firebase Authentication e Firebase Hosting sono stati lanciati nel 2014 da Firebase, affermando l’azienda come leader nel settore del mobile backend as a service (MbaaS).

Firebase è entrato a far parte di Google nell’ottobre 2014 e ora è la piattaforma BaaS di Google. Il gigante tecnologico ha poi acquisito Divshot, una piattaforma di web hosting che è stata poi fusa con Firebase.(6)

Firebase Alternativa Oggi

Recensioni su Firebase

Secondo G2, Firebase ha un punteggio di 4,5 su 5 e 266 utenti hanno recensito la piattaforma. Le menzioni e le caratteristiche del prodotto più popolari includono lo sviluppo di app, le funzioni cloud e l’archiviazione dei dati.

Secondo TrustRadius, Firebase ha un punteggio di 8,5 su 10 e 128 utenti hanno recensito la piattaforma. Il giudizio è positivo per la maggior parte degli utenti e solo una piccola minoranza ha recensito negativamente la piattaforma.

Secondo Capterra, Firebase ha un punteggio di 4,6 su 5 e 764 utenti hanno recensito la piattaforma. Il set completo di funzionalità è un aspetto positivo comunemente menzionato, mentre la complessità della soluzione è un aspetto negativo comune.

Vantaggi di Firebase

Vantaggi NumeroVantaggioDescrizione
1Libero di iniziareFirebase offre un piano Spark gratuito con limiti generosi, che consente agli sviluppatori di iniziare senza alcun costo.
2Velocità di sviluppoConsente uno sviluppo rapido e riduce i tempi di commercializzazione, in quanto permette agli sviluppatori front-end di gestire la maggior parte del lavoro senza richiedere un team back-end separato.
3Piattaforma di sviluppo app end-to-endFornisce un set completo di strumenti che coprono l’intero ciclo di sviluppo dell’applicazione, dalla creazione e dal test alla distribuzione e al monitoraggio.
4Alimentato da GoogleSostenuto da Google, offre solidità e integrazione con i servizi Google Cloud.
5Focus sullo sviluppo di frontendRiduce la necessità di codice backend, consentendo agli sviluppatori di concentrarsi sulla creazione del frontend delle applicazioni.
6E’ senza serverOffre un ambiente serverless, riducendo le preoccupazioni relative alla scalabilità e alla gestione dei server.
7Capacità di apprendimento automaticoFornisce strumenti per l’implementazione di funzionalità di apprendimento automatico nelle applicazioni, accessibili a sviluppatori di ogni livello.
8Genera traffico verso le applicazioniSupporta l’indicizzazione delle app e ne migliora il posizionamento su Google Search, aumentando così la visibilità delle app e l’acquisizione di utenti.
9Monitoraggio degli erroriInclude Crashlytics per il rilevamento e la risoluzione degli errori in tempo reale, migliorando la stabilità dell’app e l’esperienza dell’utente.
10Sicurezza e backupGarantisce la sicurezza e la disponibilità dei dati grazie a funzioni quali backup regolari e gestione sicura dei dati.

Volete saperne di più? Vedi i dettagli qui sotto:

1. Libero di iniziare

Firebase è gratuito e consente agli utenti di accedere con il proprio account Google.(7)

Il piano gratuito Spark offre molte funzionalità per aiutare gli sviluppatori a iniziare. In base alle crescenti esigenze, possono poi optare per il piano Blaze.

Iniziare senza alcun costo è un’ottima opzione offerta da Firebase e uno dei motivi per cui è così popolare. Il piano Spark ha generosi limiti di lettura e scrittura del database.

L’altro vantaggio è che il piano Blaze considera i limiti originali gratuiti.

Ad esempio, con il piano Blaze potrete ospitare 20 GB di spazio di archiviazione. Il limite gratuito copre 10GB, il che significa che Firebase vi addebiterà solo 10GB per l’utilizzo extra.

2. Velocità di sviluppo

Firebase è un’opzione adatta allo sviluppo di applicazioni che può aiutare gli sviluppatori a ridurre drasticamente il time to market per lo sviluppo di applicazioni.

Di solito, ogni sviluppatore ha bisogno di accedere al server e all’host per la creazione e la manutenzione del database e dei servizi backend.

Per questo motivo, per realizzare le applicazioni è necessario avere uno sviluppatore backend e uno sviluppatore frontend. Questo vale anche per le applicazioni più piccole, dove il backend e il frontend devono collaborare in fasi diverse.

Avere sviluppatori frontend e backend può spesso comportare errori e problemi che possono causare problemi alle applicazioni, aumentando i costi e la complessità dello sviluppo.

Tuttavia, l’utilizzo di Firebase consente agli sviluppatori frontend di gestire tutto il lavoro e di ridurre i tempi di realizzazione. Tutto questo grazie a servizi pronti all’uso per l’archiviazione dei dati, l’autenticazione, le notifiche, l’analisi e altro ancora.

Inoltre, Firebase fornisce diversi servizi pronti all’uso che evitano allo sviluppatore di creare codice boilerplate, reinventare la ruota e iniziare un backend da zero.

Grazie ai suoi SDK di alta qualità, alla documentazione dettagliata e alla vivace comunità, gli sviluppatori frontend non avranno molti problemi a integrare Firebase nella loro base di codice.

3. Piattaforma all in one (ampio numero di servizi)

Firebase offre inoltre agli sviluppatori un elenco completo di prodotti che li aiutano nel processo di sviluppo.

In primo luogo, due opzioni di database sono Firestore e Realtime Database di Firebase. Allo stesso modo, Firebase consente di archiviare i contenuti multimediali nel cloud senza sforzo e di sviluppare applicazioni serverless grazie alle funzioni cloud integrate.

Firebase copre l’intero ciclo di sviluppo delle applicazioni e la piattaforma contiene funzioni per la creazione, il rilascio e il monitoraggio delle applicazioni.

Inoltre, come ultima fase del ciclo di sviluppo dell’applicazione, fornisce strumenti per coinvolgere e mantenere gli utenti nell’utilizzo.

4. Alimentato da Google

Firebase è alimentato da Google, uno dei nomi più importanti e affidabili nel mondo della tecnologia.

Dalla sua acquisizione, Firebase ha subito una serie di cambiamenti e sviluppi ed è diventata la piattaforma affidabile che è oggi. Sfrutta la potenza di Google Cloud e di molti servizi di Google.

Firebase fa ora parte della Google Cloud Platform, si armonizza perfettamente con gli altri servizi Google Cloud e si integra con numerosi servizi di terze parti.(8, 9)

Dopo l’acquisizione di Firebase, Google ha investito molto nella piattaforma e ha fornito un prodotto più robusto.

5. Concentrarsi sullo sviluppo del frontend

Gli sviluppatori di tutto il mondo preferiscono Firebase perché permette loro di concentrarsi sulla creazione di codice frontend per le applicazioni mobili.

Firebase riduce la necessità di sviluppare codice backend boilerplate, facendo slittare la data di completamento dello sviluppo dell’applicazione.

Firebase rende conveniente lo sviluppo di applicazioni e contribuisce a mantenere bassi i costi.
L’uso di Firebase consente inoltre agli sviluppatori e alle aziende di standardizzare l’ambiente di backend con un’unica tecnologia facile da imparare.

Un pattern backend riduce la formazione necessaria per supportarlo e consente agli sviluppatori focalizzati sul frontend di svolgere la maggior parte delle attività.

6. È senza server

Scalare i server non è un compito facile! In particolare, scalare un cluster di database è impegnativo e l’ottimizzazione delle prestazioni per carichi di lavoro enormi richiede ingegneri esperti.
Firebase risolve questo problema e fornisce un ambiente interamente serverless.

Firebase è dotato di un’architettura serverless che prevede che gli utenti paghino in base alle richieste, senza dover gestire o preoccuparsi dell’infrastruttura del server. È diverso da un server convenzionale, che deve rimanere sempre funzionante.

Gli utenti di Firebase vengono addebitati solo quando il server viene utilizzato, grazie alla sua natura serverless. Di conseguenza, le preoccupazioni legate alla scalabilità sono minori grazie a una maggiore efficienza.

Gli sviluppatori sono liberi di gestire in prima persona DevOps, la configurazione, l’infrastruttura e la pianificazione della capacità.

7. Apprendimento automatico

L’apprendimento automatico sta per rimodellare il settore informatico. Per molti versi, è già iniziato.

Secondo Gartner, il 30% delle aziende utilizzerà il ML in una parte dei propri processi.(10)

Firebase è vantaggioso anche perché consente agli sviluppatori di affidarsi all’apprendimento automatico.

ML può essere utilizzato dagli sviluppatori iOS e Android, indipendentemente dal loro livello di esperienza.

Firebase dispone di un kit ML con API prontamente disponibili per diverse funzioni della piattaforma mobile, come l’identificazione del testo, il rilevamento dei volti, l’etichettatura delle immagini, la scansione dei codici a barre e altro ancora.

Gli sviluppatori possono optare per le API su cloud o su dispositivo in base ai requisiti di sviluppo dell’applicazione.

8. Generare traffico

Firebase facilita l’indicizzazione delle app per consentire agli utenti di reingaggiare gli utenti di Google Search fornendo link alle app su Search.(11)

L’indicizzazione di un’applicazione può anche migliorarne il posizionamento su Search once, aiutando così la vostra applicazione a farsi conoscere da nuovi utenti che possono installarla.

Gli sviluppatori possono contare su Android Instant App, che può essere utilizzata per accedere ai contenuti delle applicazioni.

9. Monitoraggio degli errori

La funzione Crashlytics di Firebase è uno strumento fantastico per trovare e risolvere rapidamente i problemi. Firebase è in grado di monitorare gli errori non fatali e fatali e di generare report in base all’impatto degli errori sull’esperienza dell’utente.(12)

10. Backup

Firebase garantisce una sicurezza e una disponibilità ottimali dei dati con l’aiuto di backup regolari.(13)

Le app sono protette dalla perdita di dati grazie alla funzione di backup automatico della piattaforma.

Gli utenti del piano Blaze possono facilmente configurare il database in tempo reale per eseguire backup automatici. Facendo clic sulla scheda Backup del database Firebase si accede alle impostazioni di backup automatico.

Limitazioni di Firebase

Numero di limitazioneLimitazioneDescrizione
1Non è open sourceFirebase non è una piattaforma open-source, il che limita le possibilità di personalizzazione e modifica per gli sviluppatori.
2Blocco dei fornitoriL’utilizzo di Firebase può portare alla dipendenza da questa specifica piattaforma, rendendo difficile il passaggio ad altri servizi senza cambiamenti significativi.
3Restrizioni geograficheI servizi di Firebase, essendo parte di Google, non sono accessibili nei Paesi in cui i servizi di Google sono bloccati, come la Cina.
4Solo database NoSQLFirebase supporta solo i database NoSQL, che potrebbero non essere adatti a tutti i tipi di applicazioni, soprattutto a quelle che richiedono query e transazioni complesse.
5Query lenteAlcuni servizi di Firebase, come Firestore, possono avere dei limiti nelle prestazioni delle query, soprattutto per le applicazioni su larga scala.
6Complessità dei prezziI prezzi di Firebase possono essere imprevedibili e difficili da prevedere, soprattutto per le applicazioni con modelli di utilizzo variabili.
7Limitato a Google CloudFirebase viene eseguito esclusivamente su Google Cloud e non offre alcuna flessibilità per l’hosting su altre piattaforme cloud.
8Mancanza di server dedicatiFirebase non offre opzioni di server dedicati o contratti aziendali, il che può limitare le prestazioni e la personalizzazione delle applicazioni più grandi.
9Nessuna API GraphQLFirebase non supporta nativamente le API GraphQL; gli sviluppatori devono implementare dei workaround per utilizzare GraphQL.
10Complessità e curva di apprendimentoL’ampio set di funzionalità di Firebase può comportare una curva di apprendimento ripida, soprattutto per gli sviluppatori alle prime armi con lo sviluppo di app basate sul cloud. Inoltre, la gestione e l’ottimizzazione dei servizi Firebase per controllare costi e prestazioni può essere complessa.
Firebase Alternativa Oggi

Analizziamo di seguito i limiti di Firebase in modo più dettagliato:

1. Non è open-source

Firebase non è un’opzione open-source per lo sviluppo di applicazioni mobili, il che lo rende un’opzione non ottimale per molti sviluppatori.

Gli utenti non possono modificare il codice sorgente di Firebase perché è un codice chiuso. A causa di questa limitazione, molti sviluppatori che apprezzano le funzionalità di Firebase finiscono per utilizzare altre piattaforme.

Sebbene la piattaforma non sia open-source, è importante sottolineare che molte librerie e SDK sono disponibili su GitHub.(14)

Questo potrebbe essere il limite più significativo di Firebase e impedisce alla comunità di migliorare il prodotto, aumentare i livelli di flessibilità e fornire opzioni di self-hosting per gli sviluppatori che non possono permettersi i prezzi di Firebase.

Per le opzioni che non funzionano con le tecnologie proprietarie, consultare l’articolo Firebase Open-Source Alternatives.

2. Blocco dei fornitori

Un altro importante deterrente all’uso di Firebase è il fatto che ha un vendor lock-in.

È un problema significativo che impedisce ad alcuni sviluppatori di scegliere la piattaforma. Non avere accesso al codice sorgente può essere piuttosto complicato per alcuni sviluppatori.

In particolare, per le applicazioni di grandi dimensioni, il passaggio ad altri fornitori non è un compito facile e per farlo è necessario ricostruire da zero l’intero backend.

3. Firebase non funziona in molti Paesi

Firebase è un sottodominio di Google e il sito web ufficiale è https://firebase.google.com. È bloccato in molti paesi.

Google è bloccato e non è raggiungibile in paesi come la Cina e altri servizi di Google perché la Cina ha ostruito gli URI con *.google.com e *.googleapis.com.

Per un elenco completo dei Paesi, consultare il Rapporto sulla trasparenza.(15)

Leggete l’articolo Alternative a Firebase in Cina per scoprire il modo migliore per ospitare un’applicazione in Cina.

4. Funziona solo con i database NoSQL

Entrambe le opzioni di database di Firebase, Firestore e Firebase Realtime Database, offrono una struttura NoSQL e non è possibile utilizzare un database relazionale.(16, 17)

  • Query complesse

Un’altra sfida che gli utenti devono affrontare con i database NoSQL è l’implementazione di query complesse.

Sebbene Firebase abbia apportato miglioramenti significativi su Cloud Firestore rispetto all’RTDB, l’esecuzione di query complesse è ancora impegnativa per determinati utenti.

Query complessa di Firebase

L’esempio sopra riportato, estratto da StackOverflow, delinea le sfide affrontate da un utente che passa da Parse a Firebase.(18)

Esempi di problemi dell’utente riguardano il filtraggio, la combinazione di filtri e la combinazione di più query.

Anche se esiste una soluzione per questa situazione e un utente può creare complessi con Firebase, l’implementazione potrebbe non essere semplice per un principiante che utilizza la piattaforma.

  • Transazioni

Un interessante thread su StackOverflow discute come Firebase Realtime Database gestisce le proprietà ACID.(19)

Anche se supporterà le transazioni, gli sviluppatori dovranno eseguire il loro codice, a differenza di un database relazionale tradizionale, rendendo i loro sistemi più complicati.(20)

Proprietà ACID di Firebase
  • La migrazione dei dati non è semplice come l’utilizzo di un database SQL.

Secondo l’articolo 5 Reasons Not to Use Firebase, con Firebase l’utente non può gestire rapidamente la migrazione dei dati come con un semplice database SQL.

Firebase utilizza JSON e non dispone praticamente di funzioni SQL, quindi la migrazione dal database non sarà così semplice.

5. Query lente

Non tutti i database sono ideali per tutti i casi d’uso e Cloud Firestore non fa eccezione.

Sebbene sia una soluzione fantastica per scalare le app e fornire supporto alle query offline e agli aggiornamenti in tempo reale, presenta anche dei limiti.(21).

Alcuni esempi sono:

  • Frequenza di scrittura limitata a 1 al secondo;
  • Non esistono query di aggregazione native;
  • Dimensione massima della richiesta API 10 MiB;
  • Il limite di dimensione del documento è di 1 MiB;
  • Connessioni massime contemporanee 1M;
  • Flessibilità della query;
  • Le query rallentano le prestazioni.

Ci sono due ottimi articoli da leggere per saperne di più sulle limitazioni di Firestore. Il primo è dedicato alle 10 cose più importanti da sapere su Firestore quando si sceglie un database per la propria applicazione, mentre il secondo è Perché la mia query su Cloud Firestore è lenta.

6. Non tutti i servizi di Firebase sono gratuiti all’avvio

Sebbene la maggior parte dei servizi sia disponibile con il piano Spark, questa regola prevede alcune eccezioni. Ne sono un esempio le Cloud Functions e il Machine Learning.(7)

Le funzioni cloud sono disponibili solo con il piano Blaze e l’utente non può provare il servizio con il piano Spark.

È importante sottolineare la presenza di una quota gratuita per le Funzioni Cloud, ma il piano Blaze prevede un addebito quando l’utente supera il limite gratuito.

Le API di Cloud Vision nell’ambito della funzione Machine Learning sono il secondo esempio di servizio non disponibile nell’ambito del piano Spark. Questo servizio è disponibile solo per gli utenti del piano Blaze e prevede un costo di 1,5 dollari/k di API.

7. È costoso e i prezzi sono difficili da prevedere.

Firebase è una piattaforma di sviluppo di applicazioni mobili ricca di funzionalità e per alcuni è costosa. Offre un piano gratuito, ma con alcune limitazioni.

È il motivo per cui molti sviluppatori finiscono per accontentarsi di applicazioni in self-hosting con opzioni come Digital Ocean, AWS o Google Cloud.

Firebase aggiunge valore rispetto a un fornitore IaaS puro, ma la convenienza ha un prezzo. In generale, l’auto-hosting di un’applicazione sarà più conveniente dell’utilizzo di Firebase.(22)

Quindi, prima di scegliere Firebase, assicuratevi di confrontare correttamente i costi iniziali di creazione di un cluster presso un fornitore IaaS e i costi correnti (server + costi di ingegneria aggiuntivi) di manutenzione dei server rispetto all’esecuzione dell’applicazione direttamente su Firebase.

L’altro aspetto che rende Firebase costoso è che si tratta di una tecnologia proprietaria, che richiede un ritorno sull’investimento ingegneristico. D’altra parte, le tecnologie open-source possono sfruttare la potenza dello sviluppo basato sulla comunità e fornire soluzioni più convenienti.

Firebase fornisce servizi con un modello di prezzo basato sull’utilizzo ed è difficile fissare un tetto massimo per i prezzi. La piattaforma non ha piani tariffari fissi e tenere traccia dell’utilizzo delle risorse può essere una seccatura.

Stimare i costi di Firebase può essere difficile per alcuni utenti, soprattutto quando non è possibile prevedere i requisiti di scalabilità. I prezzi sono complicati e Firebase ha prezzi specifici per ogni funzione.

Mantenere i costi al di sotto di una soglia può essere piuttosto impegnativo con la piattaforma, e non c’è un modo semplice per fissare un tetto o dei limiti rigidi alla fattura.

Detto questo, grazie all’integrazione con Google Cloud, è possibile impostare budget, avvisi di utilizzo e persino limitare esplicitamente il numero di richieste. Tuttavia, richiedono di andare oltre Firebase e sono un po’ complessi da configurare.

Per gestire al meglio le spese, è necessario utilizzare le funzionalità di Firebase in modo ottimale. Ad esempio, ottimizzando il codice delle Cloud Function per ottenere tempi di esecuzione più rapidi e decidendo correttamente tra RTDB e Firestore. Ad esempio, utilizzare RTDB per gestire dati piccoli ma ad alta velocità e Firestore per set di dati più grandi o quando è necessario eseguire query complesse.

In passato, Firebase offriva il piano Flame. Si trattava di un piano a prezzo fisso di 25 dollari al mese, che è stato ritirato nel gennaio 2020.(23, 24)

La modifica della struttura dei prezzi ha causato disagi ad alcuni utenti e il passaggio al sistema Pay-as-you-go ha aumentato i costi in alcune situazioni. Per saperne di più su questo argomento, leggete l’articolo I costi di Firebase sono aumentati del 7.000%!

Si noti che una struttura basata sull’utilizzo non è necessariamente negativa! Anche la maggior parte dei provider IaaS come AWS o Azure utilizza questo principio.

L’aspetto positivo è che vi addebiterà esattamente le risorse che consumate e fornirà una maggiore granularità.

Assicuratevi di aver compreso il funzionamento della fatturazione prima di impegnarvi in questo modello e monitorate regolarmente i vostri costi per evitare addebiti imprevisti alla fine del mese.

8. Funziona solo su Google Cloud

Firebase fa ora parte di Google e la sua infrastruttura è interamente gestita da Google Cloud.(25)

Non è possibile eseguire Firebase su altri provider cloud come AWS, Azure o Digital Ocean.

Firebase limita il livello di flessibilità in termini di opzioni di hosting. Firebase non fornisce l’accesso a livello di server e possono sorgere problemi se è necessario personalizzare le impostazioni del server.

9. Mancanza di server dedicati e contratti aziendali

Gli utenti di Firebase non hanno la possibilità di usufruire di server dedicati o di contratti aziendali.(23)

Contratti Firebase Enterprise

Non fornire server dedicati è una limitazione significativa. L’unico modo per utilizzare Firebase è una struttura serverless che offre meno flessibilità di una struttura cluster completamente dedicata.

Inoltre, la condivisione delle risorse potrebbe non garantire prestazioni ottimali a causa dei vicini rumorosi.

Un ambiente serverless è un’opzione eccellente per le applicazioni il cui carico di lavoro fluttua nel tempo, ad esempio con picchi e cadute durante la giornata o la settimana.

Immaginate un’applicazione per la prenotazione di un ristorante; un ambiente serverless funzionerà bene per questa applicazione perché garantirà l’allocazione automatica di tutte le risorse del server durante i periodi di picco del venerdì/sabato sera.

D’altro canto, i carichi di lavoro di diverse applicazioni non subiranno grandi fluttuazioni, ma potrebbero richiedere impostazioni di sicurezza personalizzate o un accesso a livello di server. Una struttura serverless non sarà adeguata a questo scenario e l’hosting dedicato è un’opzione più adatta.

Firebase non offre piani tariffari, contratti o assistenza a livello aziendale, il che rappresenta un problema significativo per molti potenziali utenti. Tuttavia, il piano Blaze può essere considerato un’opzione adatta agli sviluppatori con esigenze di livello enterprise.

10. Non fornisce API GraphQL

Firebase non fornisce API GraphQL come parte della configurazione standard. Sebbene esistano soluzioni per l’implementazione di GraphQL con Firebase, REST è ancora l’opzione predefinita della piattaforma.

Per saperne di più su GraphQL e Firebase, consultare questa domanda su StackOverflow.(26)

Prezzi di Firebase

Firebase offre ai suoi utenti un piano gratuito e basato sull’utilizzo. Tuttavia, gli utenti non hanno un piano fisso e uniforme da scegliere e avviare.(7)

PianoDescrizione
Spark
(Piano gratuito)
Il piano Spark di Firebase è gratuito, con 10 GB di hosting, SSL, più siti web, un dominio personalizzato e molte altre offerte.

Ha caratteristiche importanti come Firebase ML, Realtime Database, Cloud Firestore e Test Lab.

Queste sono alcune opzioni di cui si può usufruire con il piano Firebase Spark.
Blaze
(Pagamenti a consumo)
Il piano Blaze di Firebase è disponibile con un modello di prezzo flessibile e a consumo.

È dotato di tutte le funzionalità del piano Spark e di alcune extra per migliorare l’esperienza di sviluppo.

Con questo piano, gli utenti devono pagare 0,026 dollari/GB per l’hosting e lo stesso per ogni GB di storage.

Molte delle restrizioni del piano Spark vengono eliminate con il piano Firebase Blaze.

Il calcolatore del piano Blaze disponibile sul sito web di Firebase può essere uno strumento utile per calcolare i costi stimati.

Il piano Free ha alcune limitazioni e, ad esempio, non consente agli sviluppatori di accedere alle funzioni cloud.

Blaze è il piano tariffario a pagamento con prezzi segmentati per i diversi set di funzionalità, ovvero Cloud Firestore, Cloud Functions, Autenticazione, Hosting, Firebase ML, Realtime Database e Storage.

  • Servizi Firebase sempre gratuiti

Firebase è generoso con la sua gamma di servizi sempre gratuiti che aiutano molti sviluppatori a iniziare i loro progetti di sviluppo di applicazioni.

Questi servizi possono essere gratuiti, indipendentemente dal piano scelto. Considerate i diversi servizi offerti dalla piattaforma come “sempre gratuiti”.

  • Consegna delle app per i tester.
  • Indicizzazione delle app per consentire ai motori di ricerca di indicizzare le applicazioni
  • Diverse versioni dell’app specifiche per l’utente per i test A/B
  • Previsioni e rapporti sulle prestazioni delle app
  • Interazione attiva con il cliente tramite messaggistica integrata
  • Notifiche automatiche e messaggistica per gli utenti nelle app Android, iOS e web con i messaggi di Firebase Cloud.
  • Monitoraggio delle prestazioni delle app Firebase
  • Rilevamento degli arresti anomali delle applicazioni con Firebase Crashlytics
  • Reindirizzamento degli utenti su diverse piattaforme tramite link dinamici
  • Personalizzazione delle funzioni dell’applicazione remota
  • I componenti di Firebase Machine Learning consentono di fare previsioni sugli utenti delle applicazioni che ritornano.
  • Servizi a pagamento di Firebase

È possibile accedere alla scheda Utilizzo della console Firebase per controllare lo stato di pagamento del piano e i dati relativi all’utilizzo dei diversi servizi Firebase.

  • Scheda Storage:la scheda Storage mostra la quantità totale di dati all’interno di un database, oltre ai dati archiviati in altre offerte Firebase.
  • Scheda Connessioni:la scheda Connessioni contiene informazioni sul numero totale di connessioni in tempo reale, compresi i WebSocket.
  • Scheda Load –Questa scheda contiene visualizzazioni grafiche dei carichi delle applicazioni e mostra questi dati agli utenti in un determinato lasso di tempo.
  • Scheda Download:contiene informazioni sul volume totale dei dati scaricati da un database.

Per ulteriori informazioni sui prezzi di Firebase, leggere Google Firebase Pricing for Dummies.

Privacy di Firebase

La politica sulla privacy di Firebase supporta il GDRP, il regolamento generale sulla protezione dei dati dell’Unione Europea, e il CCPA, il California Consumer Privacy Act. Inoltre, Firebase è conforme a diverse certificazioni ISO e SOC, tra cui 27001, 27017, 27018, SOC1, SOC2 e SOC3.

Firebase invia i dati dei servizi a Google per i servizi non Firebase. Questa opzione è selezionata per impostazione predefinita; gli utenti devono deselezionare la casella per evitarla.

Raccolta dati Firebase

Caratteristiche di Firebase

Firebase offre un’ampia gamma di funzionalità avanzate per le esigenze degli sviluppatori.(27)

Le funzionalità sono suddivise in Build, Release & Monitor e Engage. Firebase come backend viene utilizzato in diverse fasi dello sviluppo di applicazioni mobili.

Funzione FirebaseCategoriaDescrizione
FirestoreCostruireUn database NoSQL basato su cloud per l’archiviazione e la sincronizzazione dei dati.
Database in tempo realeCostruireDatabase ospitato nel cloud che consente la sincronizzazione dei dati in tempo reale tra le varie piattaforme.
Configurazione remotaCostruire, rilasciare, coinvolgereModificare il comportamento e l’aspetto delle app senza distribuire nuove versioni.
Estensioni FirebaseCostruireInsieme di soluzioni preconfezionate per estendere le funzionalità di Firebase.
Controllo appCostruireAiuta a proteggere le risorse di backend da abusi, come frodi di fatturazione o phishing.
Funzioni cloudCostruireFramework serverless per eseguire codice backend in risposta agli eventi.
AutenticazioneCostruire, coinvolgereFornisce l’autenticazione e la gestione degli utenti con vari metodi.
Messaggistica in cloudCostruire, coinvolgereServizio per la consegna di messaggi attraverso le piattaforme in modo affidabile.
HostingCostruireOffre web hosting con distribuzione rapida e consegna sicura.
Archiviazione in cloudCostruireSoluzione di archiviazione file in cloud con solidi controlli di accesso ai dati.
Firebase MLCostruireIntegra l’apprendimento automatico nelle vostre applicazioni con un minimo di esperienza.
CrashlyticsRilasciare, coinvolgereStrumento di segnalazione degli arresti anomali in tempo reale che aiuta a tracciare, dare priorità e risolvere i problemi di stabilità.
Google AnalyticsRilascioFornisce informazioni dettagliate sull’utilizzo delle app e sul coinvolgimento degli utenti.
Monitoraggio delle prestazioniRilascioMonitora le prestazioni dell’applicazione per identificare e risolvere rapidamente i problemi.
Laboratorio di provaRilascioTest delle app basati sul cloud su dispositivi reali e virtuali.
Distribuzione delle appRilascioGestisce la distribuzione delle versioni beta della vostra applicazione.
Test A/BImpegnarsiEseguire esperimenti per migliorare l’app con esperienze utente controllate.
Messaggistica in cloudImpegnarsiCoinvolge gli utenti con messaggi mirati e contestualmente rilevanti.
Messaggistica In-AppImpegnarsiInvia messaggi per coinvolgere attivamente gli utenti durante l’utilizzo dell’app.

Analizziamo in dettaglio ciascuna delle caratteristiche.

Database – Firestore e il database in tempo reale

I due database della piattaforma Firebase sono Cloud Firestore e Realtime Database, entrambi strumenti preziosi per le moderne esigenze di sviluppo delle applicazioni.

Cloud Firestore, noto anche come Google Firestore, è un componente della piattaforma di sviluppo di applicazioni mobili Firebase.

Si tratta fondamentalmente di un database NoSQL basato su cloud per l’archiviazione e la sincronizzazione dei dati. Gli utenti di Firebase possono accedere a Firestore da applicazioni mobili o web tramite SDK nativi.

Cloud Firestore può essere utilizzato con vari linguaggi di programmazione come Unity, C++, Java, SDK Node.js, API REST e supporto RPC. Il database Firestore di Firebase è orientato a offrire prestazioni ottimali, affidabilità, scalabilità automatica e usabilità di benchmark.

Per saperne di più su Firestore, leggete l’articolo Cos’è Google Firestore.(28)

Firebase Realtime Database è un database ospitato nel cloud. Facilita l’archiviazione dei dati basata su JSON ed esegue la sincronizzazione dei dati in tempo reale con i client connessi.

Singole istanze del Realtime Database funzionano come client durante i processi di sviluppo di applicazioni multipiattaforma utilizzando gli SDK per iOS, JavaScript e Android.

Consente alle applicazioni di ricevere gli aggiornamenti e i dati più recenti. Le applicazioni offline possono rimanere reattive perché l’SDK Database esegue la persistenza dei dati su disco. Aiuta a sincronizzare i dispositivi con gli stati attuali del server dopo il ripristino della connettività.(29)

Per saperne di più sulle differenze tra Cloud Firestore e Realtime Database, leggete l’articolo Firestore vs. Realtime Database.

  • Configurazione remota

Remote Config è una soluzione cloud che consente agli utenti di modificare il comportamento e l’aspetto delle applicazioni senza aggiornarle.

Gli utenti possono anche creare valori predefiniti all’interno dell’applicazione per il mantenimento del comportamento e dell’aspetto dell’app.(41)

  • Estensioni Firebase

Le estensioni di Firebase sono soluzioni preconfezionate che aiutano a semplificare il processo di sviluppo automatizzando le attività quotidiane.

In sostanza, sono insiemi di codice configurabile e distribuibile che si integrano perfettamente in Firebase e in altri servizi Google Cloud.

Gli sviluppatori possono utilizzare queste estensioni per diverse funzionalità, come il ridimensionamento delle immagini, l’invio di e-mail o la sincronizzazione con servizi di terze parti. Esse riducono la necessità di scrivere codice boilerplate, accelerando così lo sviluppo del progetto.

Semplificando le operazioni complesse, Firebase Extensions consente agli sviluppatori di concentrarsi maggiormente sulla creazione di funzionalità uniche per le applicazioni, migliorando l’efficienza e la produttività del ciclo di vita delle app.

  • Controllo delle applicazioni Firebase

Firebase App Check è una funzione di sicurezza progettata per salvaguardare le risorse di backend di Firebase dal traffico fraudolento e dannoso.

Verifica che le richieste in arrivo ai servizi Firebase provengano effettivamente dalla vostra applicazione autentica e affidabile.

App Check ottiene questo risultato utilizzando gli attestati delle app, token digitali che confermano la legittimità dell’app che effettua la richiesta.

Integrando App Check, gli sviluppatori possono prevenire efficacemente gli accessi non autorizzati e gli abusi, come le frodi di fatturazione o il recupero di dati non autorizzati, migliorando la sicurezza complessiva della loro implementazione di Firebase.

  • Funzioni cloud

Firebase Cloud Functions si riferisce a un framework serverless che consente agli sviluppatori di eseguire codice backend per rispondere agli eventi HTTPS e a quelli attivati dalle funzionalità di Firebase.

Google Cloud memorizza il codice TypeScript o JavaScript e può essere eseguito in un ambiente gestito.(31)

Riduce la necessità di scalare e gestire i server. Per ulteriori informazioni sulle funzioni cloud, leggere l’articolo Cos’è Firebase Cloud Functions?

  • Autenticazione

L’autenticazione è una funzione di Firebase che offre librerie UI, backend e SDK pronti all’uso per l’autenticazione delle applicazioni utente.

L’autenticazione è supportata da numeri di telefono, password e provider come Google, Twitter e Facebook.(32)

L’autenticazione gode dell’integrazione con diversi servizi Firebase e si avvale di OpenID Connect e OAuth 2.0, oltre a consentire l’integrazione personalizzata del backend.

Per ulteriori informazioni sull’autenticazione Firebase, leggere l’articolo Cos’è l’autenticazione Firebase?

  • Messaggistica in cloud

Firebase Cloud Messaging o FCM è un servizio di messaggi multipiattaforma per la messaggistica gratuita. Questa funzione consente ai proprietari di app di notificare alle app client se e quando i dati o le e-mail devono essere sincronizzati.(33)

FCM consente ai proprietari di app di inviare notifiche per aumentare la fidelizzazione e coinvolgere gli utenti. Cloud Messaging facilita il trasferimento di payload fino a 4kb per i casi di messaggistica istantanea.

Per ulteriori informazioni su FCM, leggere l’articolo Cos’è Firebase Cloud Messaging?

  • Hosting

Firebase dispone di varie funzioni di hosting scalabili e agili per microservizi, app web e molti altri tipi di contenuti.

I contenuti possono essere ospitati in diverse categorie e gli utenti possono usufruire della protezione SSL e del rollback con un solo clic.(34)

Per ulteriori informazioni su Firebase Web Hosting, leggere l’articolo Cos’è Firebase Hosting?

  • Archiviazione in cloud

La funzione Cloud Storage di Firebase è un servizio di archiviazione delle risorse di sviluppo delle applicazioni, compresi gli oggetti.

Con questa funzione gli utenti hanno accesso alla sicurezza di upload e download a livello di Google, adatta all’archiviazione di file multimediali e contenuti dell’utente.(35)

Per saperne di più su Firebase Storage, leggete l’articolo Firebase Storage.

  • Apprendimento automatico

Firebase ML è un SDK mobile che sfrutta la potenza dell’apprendimento automatico di Google e la implementa nelle applicazioni iOS e Android attraverso un pratico pacchetto.(30)

L’utilizzo delle funzionalità di apprendimento automatico con Firebase ML è adatto a chiunque, indipendentemente dal livello di esperienza.

Non è necessaria una conoscenza approfondita dell’ottimizzazione dei modelli o delle reti neurali. Gli sviluppatori esperti possono usare le API di Firebase ML Kit per utilizzare applicazioni mobili come i modelli TensorFlow Lite.

Per ulteriori informazioni su Firebase ML, leggere l’articolo Cos’è Firebase Machine Learning?

  • Crashlytics

Crashlytics è il segnalatore di crash in tempo reale di Firebase che consente agli sviluppatori di tracciare, dare priorità e risolvere i problemi. La funzione Crashlytics può essere utilizzata per prevenire eventuali problemi di stabilità.(36)

Per saperne di più su questo strumento, leggete l’articolo Cos’è Crashlytics.

  • Google Analytics

Google Analytics è uno strumento di analisi avanzato che offre informazioni dettagliate sull’utilizzo delle app e sul coinvolgimento degli utenti.

Integrato perfettamente con Firebase, consente agli sviluppatori di tracciare il comportamento degli utenti, misurare le prestazioni delle app e analizzare i dati per prendere decisioni informate.

Questa integrazione consente di acquisire dati ricchi e basati sugli eventi dalle vostre applicazioni Firebase, offrendo una visione completa di come gli utenti interagiscono con la vostra applicazione.

Aiuta a comprendere i dati demografici degli utenti, i modelli di utilizzo delle app e altri indicatori di performance chiave.

Sfruttando la potenza combinata di Firebase e Google Analytics, gli sviluppatori possono adattare le loro applicazioni per soddisfare meglio le esigenze degli utenti, ottimizzare l’esperienza dell’utente e guidare strategie di marketing efficaci, il tutto attraverso un’interfaccia di analisi unificata.

  • Monitoraggio delle prestazioni

Firebase Performance Monitoring è un servizio che vi aiuta a conoscere le caratteristiche delle prestazioni delle vostre applicazioni iOS, Android e web.(38)

L’SDK di monitoraggio delle prestazioni viene utilizzato per raccogliere dati sulle prestazioni della vostra applicazione. Questo aiuta a capire dove e quando le prestazioni dell’applicazione possono essere migliorate, in modo da poter utilizzare queste informazioni per risolvere i problemi di prestazioni.

  • Laboratorio di prova

Firebase Test Lab è un’infrastruttura cloud per il test delle applicazioni. Consente agli utenti di testare le loro applicazioni iOS e Android con un’operazione su molti dispositivi e configurazioni.(39)

Gli utenti possono anche vedere i risultati nella console di Firebase, compresi screenshot, log e video.

  • Distribuzione delle app

Firebase App Distribution è una funzione che offre una visione completa del programma di beta testing di un utente sulle piattaforme Android e iOS. Gli utenti possono ricevere feedback utili prima della fase di produzione di una nuova release.(40)

Un utente può inviare le prime versioni delle applicazioni utilizzando i server CI o una console. Le installazioni delle applicazioni diventano più accessibili anche ai tester.

  • Test A/B

L’A/B Testing è una funzione di Firebase che aiuta gli sviluppatori a migliorare l’esperienza degli utenti delle app, migliorandone la gestione, la scalabilità e l’analisi.

Gli utenti possono testare rapidamente le modifiche apportate alle UI, alle funzionalità e alle campagne prima del lancio dell’app.(43)

  • Messaggistica In-App

La messaggistica in-app è una funzione di Firebase che consente di coinvolgere gli utenti attivi delle app utilizzando la messaggistica contestuale. Gli utenti possono eseguire azioni specifiche all’interno dell’app per accedere a diverse funzionalità o sbloccare determinate offerte.(45)

Alternative a Firebase

Sebbene Firebase sia una piattaforma eccellente per lo sviluppo di app, molte alternative sono altrettanto notevoli. Se state cercando un’alternativa a Firebase nel 2024, ecco le opzioni che vi consigliamo.

AlternativaCategoriaCaratteristiche principaliPrezzi
Back4AppOpen-source, Low-codeModello dei dati, API GraphQL/REST, funzioni ServerlessGratuito, Serverless a partire da $25/mese
ParseStruttura open-sourceDashboard di facile utilizzo, API, adattatori per lo storage di oggettiDa scaricare gratuitamente
AWS AmplifySviluppo full-stackArchivio dati, autenticazione, analisi, APILivello gratuito, a pagamento
BackendlessSviluppo di app visiveApp builder, API, Database in tempo realeLivello gratuito, da $15/mese
KuzzleIoT e BackendSuite IoT, Backend, PaaSGratuito, piani di assistenza a partire da € 500/mese
SupabaseOpen-sourceDatabase, cruscotto, autenticazioneLivello gratuito, da $25/mese
AppwriteServer open-sourceDatabase, archiviazione, geo, funzioniStarter gratuito, da $15/membro/mese
AblyInfrastruttura in tempo realeCanali PubSub, ambienti multiutenteLivello gratuito, a pagamento
HasuraMotore GraphQLAPI GraphQL, Caching, SicurezzaLivello gratuito, Professionale a partire da $1,5/ora
NhostBackend senza serverDatabase in tempo reale, API GraphQLLivello gratuito, da $25/mese

Conclusione

Questo articolo spiega i vantaggi, gli svantaggi, la struttura dei prezzi, le caratteristiche principali e le migliori piattaforme alternative di Firebase.

Firebase è la piattaforma di sviluppo di app mobili di Google. I suoi vantaggi includono un ambiente di sviluppo end-to-end, tempi di commercializzazione più rapidi per la creazione di app e un’infrastruttura scalabile.

Sebbene sia un prodotto fantastico, Firebase ha degli aspetti negativi. È una piattaforma closed-source, ha un vendor lock-in e fornisce solo database NoSQL.

Dal punto di vista dei prezzi, Firebase opera con due piani diversi. Il primo è Spark, che offre un generoso livello gratuito e comprende la maggior parte delle funzionalità di Firebase.

Il piano a pagamento si chiama Blaze e funziona secondo un modello basato sull’utilizzo. L’applicazione viene addebitata in base al carico di lavoro utilizzato.

Firebase divide le sue funzionalità in tre categorie principali: Build, Release & Monitor e Engage. Queste sono tutte impiegate nelle varie fasi del ciclo di sviluppo di un’applicazione.

Firebase ha molti concorrenti, tra cui Back4app, Backendless, AWS Amplify e Parse.
Speriamo che questo articolo vi aiuti a capire meglio Firebase e a decidere se utilizzare questo servizio.

Firebase Alternativa Oggi

Leave a reply

Your email address will not be published.