MICHELEPISANI.IT
 

Strumenti, Console e Collegamento

Come Collegare un'Applicazione Android a Firebase

come collegare un applicazione android a firebase
April 17
07:572017

Per chi non lo conoscesse Firebase è un servizio che fornisce risorse e strumenti di analisi e sviluppo end-to-end. La sua implementazione non è essenziale ai fini del mero sviluppo in quanto gli stessi servizi offerti dallo strumento possono essere sostituiti con altrettanti di tipo 'personale' (per dirne uno, il database) tuttavia essendo una soluzione pronta all'uso e studiata per essere facilmente integrabile con le nostre app merita di essere presa in considerazione sia da questo punto di vista che, a livello di analisi dei dati, per il fatto che Google Tag Manager per le app per dispositivi mobili è integrato in Firebase.
L'utilizzo di Google Tag Manager all'interno delle app permette di modificare le impostazioni di misurazione senza dover ricorrere, per ogni nuova configurazione o semplice modifica, all'aggiornamento dell'app sul Play Store.

In questa guida verranno dettagliati i passaggi necessari per il collegamento della propria app alla console di Firebase, suddivisi in 3 parti principali:

1) Come verificare se gli strumenti sono aggiornati correttamente alla versione necessaria per effettuare il collegamento;
2) Come creare un progetto nella console di Firebase;
3) Come modificare l'applicazione affinché possa dialogare con Firebase.

 

Come verificare se gli strumenti sono aggiornati correttamente alla versione necessaria per effettuare il collegamento

Per eseguire l'applicazione è necessario avere disponibile un dispositivo Android (o un emulatore) con un livello delle API almeno pari a 9 (Android 2.3 "Gingerbread") e che abbia almeno Play Service 9.0 o superiore. Il dispositivo fisico dovrebbe già avere tali prerequisiti ma in caso di utilizzo di un emulatore è probabile che serva aggiornare le versioni dei tool indicati.
Per verificare la versione del Play Service su un dispositivo è necessario cliccare sull'icona "Impostazioni" e successivamente sulla voce di menù "Applicazioni", a questo punto assicurarsi di essere posizionati nel tab di "Tutte le applicazioni installate" e scrollare fino a trovare "Google Play Services" selezionarla e verificare in alto se la versione è uguale o superiore alla 9.0 (in caso negativo effettuare l'aggiornamento di tale app).
E' la volta di verificare gli strumenti dell'SDK di Android (Android SDK Tools). Per farlo è necessario aprire Android Studio e cliccare sull'icona di Android SDK Manager per eseguirlo, nella finestra che si aprirà selezionare il tab "SDK Tools" e verificare nella lista se "Google Play Service" ha una versione uguale a 30.0 o superiore e se la versione di "Google Repository" è 26 o superiore.
Con i prerequisiti appena descritti è possibile iniziare ad effettuare il setup di Firebase per utilizzarlo nella nostra app (ricordandosi di tenere sempre gli strumenti di cui sopra aggiornati all'ultima versione).

 

Come creare un progetto nella console di Firebase

Recarsi all'indirizzo 'https://firebase.google.com/', che è la home del mondo Firebase. Accedere a questo punto alla relativa console cliccando sull'apposito link 'Vai alla console' in alto a destra della home (o direttamente dal seguente link: https://console.firebase.google.com/). Dalla console sarà necessario creare un progetto cliccando sul bottone 'CREA UN NUOVO PROGETTO' (CREATE NEW PROJECT), nella finestra che si aprirà dovrà essere inserito un nome da associare al nostro progetto (che essendo un contenitore cross-platform andrà poi a contenere sia la versione Android che iOS che eventualmente anche web del nostro progetto al fine di condividere funzioni quali database, gestione utenti, configurazione remota, ecc...) ed un paese di default che indica il paese o l'area geografica della tua organizzazione o azienda ed ha la funzione di visualizzare le valute nel formato desiderato (il paese selezionato non determina la posizione dei dati per le funzioni di Firebase).
A questo punto, per creare effettivamente il progetto, cliccare sul bottone 'CREA PROGETTO' (CREATE PROJECT) e dopo alcuni secondi di caricamento verrà visualizzata la dashboard del progetto appena creato, dove nella colonna sinistra si trovano i componenti di Firebase e nel corpo della pagina gli elementi cliccabili per aggiungere la propria app al progetto in base al SO o linguaggio di programmazione utilizzato (Android, iOS, web).
Cliccare sull'icona per l'aggiunta dell'app Android alla console di Firebase ed inserire i valori richiesti ovvero, il package name (identificabile facilmente accedendo al sorgente della nostra app tramite Android Studio, precisamente nel file 'build.gradle' sotto la voce 'applicationId'), un nickname per l'app (non visibile all'utente ma che, se specificato, verrà utilizzato nella console di Firebase per rappresentare l'app) e l'hash SH1 della propria key di debug che aiuta Firebase a verificare che la tua app di debug abbia i permessi per utilizzare i servizi di Firebase (come la configurazione remota, l'autenticazione e gli app invites). Per ottenere l'hash SHA1 Ë necessario aprire la console di Windows (o il Terminale nel caso di un Mac) ed inserire il seguente comando:

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

Verrà richiesto di inserire una password, digitare quindi quella di default che è "android" (in lowercase), apparirà a questo punto il fingerprint del certificato pertanto copiare il valore di SHA1 ed inserirlo nell'opportuna casella di testo della modal in Firebase per poter proseguire con l'aggiunta dell'app al progetto cliccando sul bottone "REGISTRA APP" (ADD APP).
A questo punto verrà scaricato automaticamente un file chiamato 'google-services.json' che contiene la configurazione della nostra app (ricordarsi che, se in fasi successive la configurazione dell'app verrà modificata è necessario scaricare un nuovo file di configurazione aggiornato da aggiungere al progetto Android).
Quello che è necessario fare adesso con questo file è inserirlo nel progetto Android sotto la cartella 'app'. Questa operazione può essere fatta manualmente o dalla console di Windows (in caso di Mac è il Terminale) tramite il seguente comando:

mv ~/Downloads/google-services.json on ~/path-dove-si-trova-la-mia-app/cartella-della-mia-app/app

 

Come modificare l'applicazione affinché possa dialogare con Firebase

Aprendo il nostro progetto in Android Studio è possibile vedere il file .json appena caricato nella cartella 'app'. Adesso è possibile aggiornare il file build.gradle per aggiungere la libreria client di Firebase alla propria app.
Il primo passaggio è quello di aggiungere il plugin "Google Services" al file "build.gradle" di configurazione (quello più esterno nell'alberatura dei file del nostro progetto in Android Studio) quindi, nel blocco 'dependencies' aggiungere:

classpath 'com.google.gms:google-services:3.0.0'

Chiudere il corrente file Gradle ignorando, per il momento, la richiesta di sincronizzare tale file.
Aprire quindi il file build.gradle più interno in termini di alberatura ed inserire il codice per l'aggiunta del plugin "Google Services" in fondo al resto del codice presente nel file, il quale avrà lo scopo di leggere le informazioni all'interno del file 'google-services.json' ed inserire alcune delle sue informazioni nella nostra build:

apply plugin: 'com.google.gms.google-services'

Sempre all'interno dello stesso file build.gradle inserire la seguente riga di codice, relativa al core di Firebase, all'interno del blocco 'dependencies' (assicurarsi di utilizzare l'ultima versione dal seguente link: https://firebase.google.com/docs/android/setup#available_libraries):

compile com.google.firebase:firebase-core:10.2.1

A questo punto sincronizzare il file Gradle (Sync Now) per allineare le modifiche.
Per verificare a questo punto che tutto sia stato fatto correttamente è possible lanciare l'app nell'emulatore ed osservare che, tra le prime righe del file di log, l'inizializzazione di Firebase risulti effettuata correttamente; dovremmo pertanto trovare una riga con scritto qualcosa simile al seguente:

D/Firebase: Initialized class com.google.android.gms.measurement.AppMeasurement.
I/FirebaseInitProvider: FirebaseApp inizialization successful

A questo punto sarà possibile utilizzare qualsiasi componente di Firebase nella propria app.

Tags

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

5 Commenti

  1. Gaia Wednesday, September 25, 2019 alle ore 15:23

    Ciao ho un problema di autenticazione, quando provo a fare il login su determinati dispositivi si blocca e rimane sempre sulla schermata di login senza effettuare mai il login. Su altri dispositivi invece funziona normalmente. Pensavo fosse un errore causato dalla versione API ma ho controllato ed è tutto giusto. Non riesco a trovare dove può essere l'errore, riusciresti ad aiutarmi? Grazie mille in anticipo

    Rispondi a questo commento
    • Michele PisaniAutore Wednesday, September 25, 2019 alle ore 18:23

      Ciao Gaia,
      a quale autenticazione stai facendo riferimento? Se è quella di Firebase intanto ti condivido le linee guida ufficiali: https://firebase.google.com/docs/auth
      Se riesci a fornire il messaggio di errore che ricevi in console posso provare ad essere maggiormente di aiuto.

      Rispondi a questo commento
      • Gaia Wednesday, September 25, 2019 alle ore 20:56

        Si utilizzo firebase, non mi dà errori in console, resta semplicemente sempre sulla pagina di login, però non su tutti i dispositivi dà questo problema

  2. Giuseppe Saturday, May 2, 2020 alle ore 13:52

    Ciao,
    ho un problema con la mia app e firebase. Ho implementato l'autenticazione con due activity: una di login e una di registrazione. Appena parte l'app, la prima operazione che faccio, ad esempio registrazione va in errore su Firebase e impiega molto a rispondere, come se non riuscisse a rispondere lasciando l'app in attesa. Le successive operazioni (anche la stessa registrazione) invece sono veloci e tutto in success. è come se il primo accesso si svegliasse il server per poi andare tutto bene.

    Rispondi a questo commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Il Canale YouTube in ITALIANO

1 VIDEO GRATIS ogni 2 settimane! ISCRIVITI!

Entra a far parte della community su Facebook

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Michele Pisani

Hai verificato se succede per tutte le pagine da un certo periodo di tempo in poi o solo su alcune?

Tecnowiz

Sono amministratore di un blog pure io... Intanto ti faccio i complimenti per questo articolo. …

Michele Pisani

Ciao Antonio, grazie per la fiducia :) In caso di più fogli è necessario inserire il codice del …

Antonio

Ciao Michele, ho acquistato il tuo libro che unitamente ai tuoi video sta diventando il mio corso …