11.2: Introduzione a Firebase e setup di Android Studio per la sua integrazione

Condividi su:

In questo articolo inizieremo ad approcciarci a questa piattaforma analizzando come avviare un nuovo progetto e come sfruttarlo all’interno della nostra app, grazie alla profonda integrazione con Android Studio. A titolo di esempio sfrutteremo un database real-time.





Per prima cosa dobbiamo assicurarci di avere l’SDK necessario, quindi apriamo l'”SDK Manager” di Android Studio. Per l’occasione creiamo anche un nuovo progetto.

All’interno dell'”SDK Manager” dobbiamo spuntare e quindi scaricare ed installare, se già non sono installati: Google Play Services, Android Support Repository e Google Repository. Li trovate nella scheda “SDK Tools”.

La creazione del progetto e la registrazione dell’app

Fatto ciò possiamo recarci all’indirizzo firebase.google.com per avviare un nuovo progetto. Ovviamente dovrete essere loggati col vostro account Google.

All’interno della console abbiamo tutto il necessario per creare nuovi progetti o gestire quelli esistenti:

Consolle Firebase

Per creare un nuovo progetto è sufficiente cliccare sul riquadro “Aggiungi progetto”. Nella schermata che si apre dobbiamo assegnare un nome al progetto e scegliere l’area geografica, necessaria per permettere alla piattaforma di impostare correttamente la valuta. Volendo è possibile anche modificare l’ID assegnato automaticamente. Compilati tutti i campi e cliccando su “Crea progetto” parte la procedura di creazione. Dopo alcuni secondi si verrà reindirizzati alla console di gestione dello specifico progetto:

Consolle progetto

Volendo aggiungere Firebase alla nostra app Android clicchiamo sul pulsante “Aggiungi Firebase alla tua app Android”.
Nella procedura guidata che viene avviata dobbiamo innanzitutto inserire il package dell’app e, anche se facoltativo, il certificato SHA-1 per la firma di debug, necessario al nostro scopo.

Per il package dell’app nessun problema è il solito nella forma “dominio.sito_web_developer.nome_app” che scegliete in fase di creazione di un progetto in Android Studio. Per il certificato dovremmo eseguire una serie di passaggi in Android Studio.

Aprite il pannello Gradle alla destra dell’interfaccia e avviate con un doppio click il tool “signingReport” che trovate nel percorso “Nome app”->”:app”->”Tasks”->”android”:

Signing Report
Click per ingrandire

Il risultato dell’esecuzione del tool apparirà nella finestra in basso e per poter visualizzare il certificato è sufficiente cambiare la visualizzazione della finestra passando alla modalità testuale. Basta cliccare sul pulsante con la stilizzazione della gerarchia e “ab” accanto al pulsante “Play”. Qui tra le varie righe troverete il certificato da inserire nel wizard di Firebase (riconoscibile dalla siglia SHA-1 e nel formato indicato dal campo di testo del wizard). Inseriti tutti i dati e cliccando su “Registra app” verranno mostrati un paio di passaggi che indicano come integrare il progetto appena creato all’interno della nostra app. Potete non seguirli, poiché vedremo insieme come fare, senza considerare che con le nuove versioni di Android Studio la procedura è stata automatizzata.

Si aprirà nuovamente la consolle di Firebase, con una panoramica dell’app appena registrata. Ovviamente, avendo appena iniziato e non avendo distribuito l’app, non ci saranno informazioni.

Volendo aggiungere un database all’app, ci rechiamo nella sidebar alla sinistra, espandiamo il menù “Develop” e scegliamo “Database”:

Database

Cliccando su “Inizia” verrà aperto il database, che ovviamente sarà vuoto. Lasciamo per un attimo la console di Firebase e torniamo ad Android Studio.

L’integrazione con Android Studio e all’interno dell’app

Per prima cosa dobbiamo tornare alla configurazione di esecuzione/debug dell’app, essendo ancora nella configurazione “signingReport” di Gradle. Per farlo è sufficiente scegliere “app” dal menù a discesa accanto al pulsante “Play” della toolbar in alto (quello che utilizzate per eseguire l’app). Dopo possiamo anche chiudere le finestre di Gradle e del monitor in basso.

Aprendo il menù “Tools” e cliccando su “Firebase” verrà avviata una finestra di assistenza che ci aiuterà ad integrare la piattaforma all’interno dell’app:

Firebase Assistant

Volendo aggiungere un database espandiamo “Realtime Database” e clicchiamo su “Save and retrieve data”. Sarà sufficiente seguire i punti indicati per procedere. Col primo viene collegata l’app al progetto Firebase, all’interno del quale abbiamo già registrato la nostra app (con i passaggi che abbiamo effettuato prima). La prima volta verrà chiesto di accedere all’account Google e consentire l’accesso ad Android Studio. Fatto ciò basterà avviare la sincronizzazione.
Col secondo punto vengono automaticamente aggiunte al progetto tutte le dipendenze necessarie per aggiungere il database realtime.
Completata la sincronizzazione di Gradle possiamo procedere. L’assistente, con i punti successivi, suggerisce i passaggi da compiere. Al momento faremo solo una semplice prova.

Grazie a questo tool abbiamo eseguito automaticamente i passaggi che venivano indicati nel wizard di registrazione dell’app su Firebase.

Testare il funzionamento del database

Per testare il funzionamento del tutto aggiungiamo un paio di righe al nostro codice. Recuperiamo un’istanza del database e il riferimento della posizione in cui vogliamo scrivere, settando poi un valore in questa:

public class MainActivity extends AppCompatActivity {

    private FirebaseDatabase db;
    private DatabaseReference dbRef;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        db = FirebaseDatabase.getInstance();
        dbRef = db.getReference("message");
        dbRef.setValue("Hello Firebase");
    }
}

Provando il codice e aprendo la consolle di Firebase noteremo che il database contiene ancora “null”. Il motivo è semplice, per ragioni di sicurezza gli utenti devono essere autenticati per poter accedere al database. Aprendo la scheda “Regole” all’interno della console di gestione del database avremo infatti il seguente script:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

Per il momento e solo per provare che abbiamo fatto tutto correttamente cambiamolo in questo modo:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

e clicchiamo su “Pubblica”. Firebase ci segnalerà il warning, ma riproviamo ad eseguire l’app. Stavolta avremo dei dati all’interno del database:

EsempioQuesta è un’eccezione, il database non dovrebbe mai essere accessibile pubblicamente, ma sempre e solo dietro autenticazione. Non avendo ancora le nozioni necessarie per fare questo passaggio, abbiamo reso temporaneamente pubblico il database.

Avrete notato anche che di fatto l’app si è connessa ad internet, ma noi non abbiamo inserito il relativo permesso all’interno del manifest e non l’ha fatto neanche l’assistente. Questo perché il permesso di accesso ad internet è inserito nel manifest della libreria di Firebase, che verrà poi incorporato con quello della nostra app. Aprendo il file manifest infatti noterete anche il tab “Merged Manifest”.



Con questo articolo possiamo fermarci, dal prossimo andremo nel vivo dell’uso di questa piattaforma.

Condividi su:

label, , ,

About the author