Se non l'hai già fatto, aggiungi Firebase al tuo progetto Android .
Crea una banca dati
Passa alla sezione Realtime Database della console Firebase . Ti verrà chiesto di selezionare un progetto Firebase esistente. Segui il flusso di lavoro per la creazione del database.
Seleziona una modalità iniziale per le regole di sicurezza di Firebase:
- Modalità di prova
Buono per iniziare con le librerie client mobile e web, ma consente a chiunque di leggere e sovrascrivere i tuoi dati. Dopo il test, assicurati di esaminare la sezione Comprendere le regole del database in tempo reale di Firebase .
Per iniziare con l'SDK Web, Apple o Android, seleziona la modalità test.
- Modalità bloccata
Nega tutte le letture e le scritture da client mobili e web. I tuoi server delle applicazioni autenticati possono ancora accedere al tuo database.
Scegli una posizione per il database.
A seconda della posizione del database , l'URL per il nuovo database sarà in uno dei seguenti formati:
DATABASE_NAME .firebaseio.com
(per database inus-central1
)DATABASE_NAME . REGION .firebasedatabase.app
(per i database in tutte le altre località)
Fai clic su Fatto .
Quando abiliti Realtime Database, abilita anche l'API in Cloud API Manager .
Aggiungi l'SDK di Realtime Database alla tua app
Nel file Gradle del tuo modulo (a livello di app) (di solito<project>/<app-module>/build.gradle
), aggiungi la dipendenza per la libreria Android Realtime Database. Ti consigliamo di utilizzare la distinta base Android di Firebase per controllare il controllo delle versioni della libreria. Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependency for the Realtime Database library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-database-ktx' }
Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare la distinta base
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.
Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la distinta base per gestire le versioni della libreria, che garantisce che tutte le versioni siano compatibili.
dependencies { // Add the dependency for the Realtime Database library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-database-ktx:20.2.2' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependency for the Realtime Database library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-database' }
Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare la distinta base
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.
Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la distinta base per gestire le versioni della libreria, che garantisce che tutte le versioni siano compatibili.
dependencies { // Add the dependency for the Realtime Database library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-database:20.2.2' }
Configura le regole di sicurezza del database in tempo reale
Il database in tempo reale fornisce un linguaggio di regole dichiarative che ti consente di definire come i tuoi dati dovrebbero essere strutturati, come dovrebbero essere indicizzati e quando i tuoi dati possono essere letti e scritti.
Scrivi nel tuo database
Recupera un'istanza del tuo database usando getInstance()
e fai riferimento alla posizione in cui vuoi scrivere.
Kotlin+KTX
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
Java
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!");
È possibile salvare una gamma di tipi di dati nel database in questo modo, inclusi gli oggetti Java. Quando salvi un oggetto, le risposte di qualsiasi getter verranno salvate come figli di questa posizione.
Leggi dal tuo database
Per aggiornare i dati della tua app in tempo reale, devi aggiungere un ValueEventListener
al riferimento appena creato.
Il metodo onDataChange()
in questa classe viene attivato una volta quando il listener è collegato e di nuovo ogni volta che i dati cambiano, inclusi i figli.
Kotlin+KTX
// Read from the database myRef.addValueEventListener(object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. val value = dataSnapshot.getValue<String>() Log.d(TAG, "Value is: $value") } override fun onCancelled(error: DatabaseError) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()) } })
Java
// Read from the database myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. String value = dataSnapshot.getValue(String.class); Log.d(TAG, "Value is: " + value); } @Override public void onCancelled(@NonNull DatabaseError error) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()); } });
Facoltativo: configurare ProGuard
Quando utilizzi Firebase Realtime Database nella tua app insieme a ProGuard, devi considerare come gli oggetti del tuo modello verranno serializzati e deserializzati dopo l'offuscamento. Se utilizzi DataSnapshot.getValue(Class)
o DatabaseReference.setValue(Object)
per leggere e scrivere dati, dovrai aggiungere regole al file proguard-rules.pro
:
# Add this global rule
-keepattributes Signature
# This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models.
# Modify this rule to fit the structure of your app.
-keepclassmembers class com.yourcompany.models.** {
*;
}
Per ricevere assistenza per domande o problemi relativi a ProGuard, visita i forum della community di Guardsquare per ricevere assistenza da un esperto.
Preparati per il lancio
Prima di lanciare la tua app, ti consigliamo di esaminare la nostra lista di controllo per il lancio per assicurarti che la tua app sia pronta per l'uso!
Assicurati di abilitare App Check per assicurarti che solo le tue app possano accedere ai tuoi database.
Prossimi passi
- Scopri come strutturare i dati per Realtime Database
- Ridimensiona i tuoi dati su più istanze di database .
- Leggere e scrivere dati .
- Visualizza il tuo database nella console Firebase .