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.
Per seguire, avrai bisogno di:
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.
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.
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.
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.
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"
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.
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.
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);
Per firmare un utente, puoi semplicemente chiamare il disconnessione()
metodo del FirebaseAuth
classe.
. FirebaseAuth.getInstance () SignOut ();
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.
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'
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.
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.
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: