Inizia con Firebase per Android

Le applicazioni mobili necessitano di un server back-end per eseguire attività quali l'autenticazione degli utenti e la sincronizzazione dei dati utente su più dispositivi. Tuttavia, la creazione di un server di questo tipo richiede un set di abilità a cui mancano gli sviluppatori di app indipendenti. Fortunatamente, ci sono diversi back-end come piattaforme di servizio, spesso chiamate BaaS, che puoi usare oggi. Google's Firebase è una di queste piattaforme.

Firebase offre gratuitamente servizi essenziali quali analisi, reporting degli arresti anomali, autenticazione degli utenti e cloud. I suoi servizi freemium includono un database NoSQL in tempo reale, hosting di file e hosting di siti web statici.

In questo tutorial, ti mostrerò come aggiungere l'autenticazione utente, l'analisi e l'archiviazione remota dei dati alla tua app Android utilizzando Firebase.

Prerequisiti

Per seguire, avrai bisogno di:

  • Android Studio 2.2 RC2 o versioni successive

1. Utilizzo di Firebase Analytics

Firebase Analytics è una delle soluzioni di analisi di app per dispositivi mobili più popolari disponibili oggi. Usandolo, puoi ottenere una comprensione precisa di chi sono i tuoi utenti e di come stanno usando la tua app.

Passaggio 1: configura Analytics di Firebase

Le versioni più recenti di Android Studio hanno il supporto integrato per Firebase Analytics. Ciò significa che puoi aggiungere Firebase Analytics al tuo progetto senza dover mai lasciare Android Studio.

Per iniziare a integrare Firebase Analytics con il tuo progetto, clicca su Strumenti> Firebase. Ti verrà presentato il seguente Assistente finestra:

Clicca su analitica e poi Registra un evento di Analytics.

Ora devi associare il tuo progetto Android Studio a un progetto Firebase. Pertanto, fare clic su Connetti a Firebase pulsante.

Nella finestra di dialogo che si apre, sarai in grado di vedere tutti i tuoi progetti Firebase esistenti. Puoi sceglierne uno o scegliere di creare un nuovo progetto. Per ora, ti suggerisco di scegliere il Crea un nuovo progetto Firebase opzione, e dare un nome univoco al progetto.

Una volta premuto il tasto Connetti a Firebase il pulsante all'interno della finestra di dialogo, Android Studio eseguirà automaticamente tutte le modifiche necessarie alla configurazione, ad esempio la generazione di un google-services.json file e caricamento di un'impronta digitale SHA1.

Ora puoi premere il tasto Aggiungi Analytics alla tua app per aggiungere il plugin Firebase e la dipendenza Firebase Core al tuo progetto. Android Studio ti mostrerà le esatte modifiche che verranno apportate al build.gradle File.

stampa Accetta modifiche per completare la configurazione.

Passaggio 2: generazione di eventi di Analytics

Dopo aver configurato Firebase Analytics per la tua app, non devi scrivere alcun codice aggiuntivo se sei soddisfatto solo degli eventi di analisi generati automaticamente, come l'utente che apre la tua app per la prima volta, usandolo per più di 10 secondi, effettuando un acquisto in-app o disinstallando l'app. Pertanto, ora puoi eseguire la tua app su un emulatore o su un dispositivo reale e nelle prossime 24 ore potrai vedere i log di analisi nella console di Firebase.

Se si desidera analizzare più da vicino i comportamenti dei propri utenti, è possibile generare manualmente eventi di analisi personalizzati utilizzando il comando LogEvent () metodo del FirebaseAnalytics classe. Il metodo prevede due parametri: una stringa che specifica il nome dell'evento personalizzato e a impacchettare contenente dettagli sull'evento sotto forma di coppie chiave-valore.

Ad esempio, se si desidera generare un evento chiamato my_custom_event ogni volta che un utente fa clic su un pulsante specifico, dovrai aggiungere il codice seguente al gestore dei clic del pulsante:

// Crea un'istanza di FirebaseAnalytics FirebaseAnalytics fa = FirebaseAnalytics.getInstance (this); // Crea un pacchetto contenente informazioni su // l'evento analytics Pacchetto eventDetails = new Bundle (); eventDetails.putString ("my_message", "Clicked that special button"); // registra l'evento fa.logEvent ("my_custom_event", eventDetails);

Per la maggior parte, gli eventi personalizzati sono indistinguibili dagli eventi raccolti automaticamente nella console di Firebase.

Nota che i nomi degli eventi sono sensibili al maiuscolo / minuscolo. Pertanto, è una buona idea definire tutti i nomi degli eventi come stringhe costanti. In alternativa, è possibile utilizzare costanti del nome di evento predefinite disponibili in FirebaseAnalytics.Event classe.

2. Utilizzo dell'autenticazione Firebase

L'autenticazione dell'utente è un requisito importante per la maggior parte delle app Android oggi. Essendo in grado di autenticare in modo sicuro i propri utenti e quindi identificarli in modo univoco, è possibile offrire loro un'esperienza personalizzata in base ai loro interessi e preferenze. Puoi anche assicurarti che non abbiano problemi ad accedere ai loro dati privati ​​mentre usi la tua app da più dispositivi.

Firebase Auth ti consente di autenticare i tuoi utenti utilizzando una varietà di meccanismi di accesso. In questo tutorial, ti mostrerò come consentire ai tuoi utenti di accedere alla tua app utilizzando i loro indirizzi email e password.

Passaggio 1: configura il tuo progetto

Per poter utilizzare Auth Firebase nel tuo progetto Android Studio, devi aggiungere quanto segue compilare dipendenza dal App modulo di build.gradle file.

compila "com.google.firebase: firebase-auth: 9.4.0"

Passaggio 2: abilitare l'autenticazione basata su password

Per impostazione predefinita, Firebase non consente l'autenticazione dell'utente. Pertanto, è necessario abilitare manualmente l'autenticazione utente basata su password nella console Firebase. Per farlo, vai al auth sezione e premere il tasto Imposta il metodo di accesso pulsante. Ora vedrai un elenco di tutti i provider di accesso disponibili.

Scegliere E-mail / password, abilitalo e premi Salvare.

Passaggio 3: supporto registrazione utente

Con l'autenticazione basata su password, i nuovi utenti devono registrarsi fornendo un indirizzo email e una password univoci. Per aggiungere questa funzionalità alla tua app, puoi usare il createUserWithEmailAndPassword () metodo del FirebaseAuth classe. Come suggerisce il nome, il metodo si aspetta un indirizzo email e una password come argomenti.

Essere in grado di determinare il risultato del createUserWithEmailAndPassword () metodo, è necessario aggiungere un OnCompleteListener ad esso utilizzando il addOnCompleteListener () metodo. Il seguente frammento di codice ti mostra come registrare un nuovo utente e anche dire se il processo di registrazione è stato completato con successo:

FirebaseAuth.getInstance () .createUserWithEmailAndPassword (emailAddress, password) .addOnCompleteListener (new OnCompleteListener() @Override public void onComplete (@NonNull Task task) if (task.isSuccessful ()) // Utente registrato correttamente);

Tieni presente che è tua responsabilità convalidare gli indirizzi email e assicurarti che gli utenti utilizzino password complesse.

Puoi dare un'occhiata agli indirizzi email di tutti gli utenti registrati con successo nel utenti scheda della console di Firebase auth sezione.

Passaggio 4: supporto per l'accesso dell'utente

Dopo aver completato la registrazione, l'utente ha eseguito l'accesso automatico. L'utente continuerà a rimanere connesso anche se l'app viene riavviata. Tuttavia, la tua app deve includere il codice che consente agli utenti di accedere manualmente utilizzando l'indirizzo email e la password specificati durante la procedura di registrazione.

Per firmare manualmente un utente, è necessario utilizzare il signInWithEmailAndPassword () metodo del FirebaseAuth classe. Il metodo prevede un indirizzo email e una password come unici argomenti e restituisce a Compito oggetto. Aggiungendo un OnCompleteListener ad esso, è possibile verificare se l'accesso è stato completato con successo.

Per evitare di accedere a un utente che ha già effettuato l'accesso, devi chiamare il signInWithEmailAndPassword () metodo solo se la corrente FirebaseUser è nullo.

Il seguente frammento di codice ti mostra come firmare un utente in:

FirebaseAuth auth = FirebaseAuth.getInstance (); if (auth.getCurrentUser ()! = null) // Già firmato // Non fare nulla else auth.signInWithEmailAndPassword (emailAddress, password) .addOnCompleteListener (new OnCompleteListener() @Override public void onComplete (@NonNull Task task) if (task.isSuccessful ()) // L'utente ha eseguito l'accesso con successo); 

Passaggio 5: supporto per l'accesso dell'utente

Per firmare un utente, puoi semplicemente chiamare il disconnessione() metodo del FirebaseAuth classe.

. FirebaseAuth.getInstance () SignOut ();

3. Utilizzo del database in tempo reale di Firebase

Una delle più potenti funzionalità della piattaforma Firebase è il suo database in tempo reale, e lo chiamano per una buona ragione: tutte le operazioni di scrittura eseguite su di esso sono immediatamente disponibili per tutti i client che la stanno osservando. Con un tale database, puoi creare applicazioni che consentono agli utenti di passare senza interruzioni da un dispositivo all'altro e anche collaborare istantaneamente con altri utenti.

Passaggio 1: configura il tuo progetto

Prima di utilizzare il database in tempo reale, dovrai aggiungere quanto segue compilare dipendenza dal tuo App modulo di build.gradle file:

compila 'com.google.firebase: firebase-database: 9.4.0'

Passaggio 2: scrivere dati

Puoi pensare al database in tempo reale come a un oggetto JSON. Ciò significa che è possibile aggiungere coppie di valori-chiave, dove le chiavi sono sempre stringhe ei valori sono primitive, matrici o altri oggetti JSON.

Prima di scrivere sul database in tempo reale, è necessario ottenere un riferimento utilizzando il getInstance () metodo del FirebaseDatabase classe. È quindi possibile ottenere un riferimento a qualsiasi percorso all'interno del database utilizzando il getReference () metodo. Il percorso può contenere una singola chiave o più chiavi disposte gerarchicamente.

Una volta che hai un DatabaseReference su un percorso, puoi impostarne il valore usando il valore impostato() metodo.

Il seguente frammento di codice mostra come aggiungere una coppia chiave-valore semplice al database:

FirebaseDatabase db = FirebaseDatabase.getInstance (); DatabaseReference ref = db.getReference ("message"); // Key ref.setValue ("Questo è un messaggio di test"); // valore

Andando al Banca dati sezione della console Firebase, è possibile visualizzare tutti i dati contenuti nel database in tempo reale.

Passaggio 3: lettura dei dati

Per leggere un valore dal database in tempo reale, è necessario associare un osservatore asincrono alla chiave o al percorso associati. Più precisamente, devi allegare a ValueEventListener a a DatabaseReference oggetto usando il addValueEventListener () metodo.

Il OnDataChange () metodo del ValueEventListener ti dà accesso a a DataSnapshot oggetto, di chi getValue () metodo può essere utilizzato per recuperare l'ultimo valore della chiave.

Ad esempio, ecco come recuperare il valore che abbiamo impostato nel passaggio precedente:

FirebaseDatabase db = FirebaseDatabase.getInstance (); DatabaseReference ref = db.getReference ("message"); // Chiave // ​​Allega listener ref.addValueEventListener (new ValueEventListener () @Override public void onDataChange (DataSnapshot dataSnapshot) // Recupera il valore più recente String message = dataSnapshot.getValue (String.class); @Override public void onCancelled ( DatabaseError databaseError) // Gestione errori);

Si noti che una volta a ValueEventListener è aggiunto, è OnDataChange () il metodo viene attivato ogni volta che cambia il valore che sta osservando.

Conclusione

La piattaforma Firebase evita la necessità di un server back-end e ti consente di concentrarti sulla creazione di app migliori. In questo tutorial, hai imparato come utilizzarlo per aggiungere analisi, autenticazione utente e archiviazione dei dati cloud in tempo reale alla tua app Android.

Per saperne di più su Firebase, puoi fare riferimento alla sua documentazione ufficiale. Puoi anche dare un'occhiata al nostro tutorial sull'uso di Firebase Crash Reporting in Android: