Collega la tua app a Firebase

Se non l'hai già fatto, aggiungi Firebase al tuo progetto Android.

Crea un database

  1. Nella console Firebase, vai a Database e spazio di archiviazione > Realtime Database.

  2. Fai clic su Crea database.

  3. Seleziona una modalità di avvio per Firebase Security Rules:

    Modalità di test

    Ideale per iniziare a utilizzare le librerie client mobile e web, ma consente a chiunque di leggere e sovrascrivere i tuoi dati. Dopo i test, assicurati di consultare la sezione Informazioni sulle regole di Firebase Realtime Database.

    Per iniziare a utilizzare l'SDK per il web, Apple o Android, seleziona testmode.

    Modalità di blocco

    Rifiuta tutte le operazioni di lettura e scrittura dei client web e su dispositivi mobili. I server delle applicazioni autenticati possono comunque accedere al tuo database.

  4. Scegli una località per il database.

    A seconda della località del database, l'URL del nuovo database avrà una delle seguenti forme:

    • DATABASE_NAME.firebaseio.com (per i database in us-central1)

    • DATABASE_NAME.REGION.firebasedatabase.app (per i database in tutte le altre località)

  5. Fai clic su Fine.

Quando abiliti Realtime Database, viene abilitata anche l'API in Gestione API Cloud.

Aggiungi l'SDK Realtime Database alla tua app

Nel file Gradle del modulo (a livello di app) (di solito <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle), aggiungi la dipendenza per la libreria Realtime Database per Android. Ti consigliamo di utilizzare la Firebase Android BoM per controllare il controllo delle versioni della libreria.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.1"))

    // 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")
}

Con la Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.

(Alternativa)  Aggiungi le dipendenze della libreria Firebase senza utilizzare BoM

Se scegli di non utilizzare la Firebase BoM, devi specificare ogni versione della libreria Firebase nella riga di dipendenza.

Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare BoM per gestire le versioni delle librerie, in modo da garantire 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:23.0.0")
}

Configura Realtime Database Security Rules

Realtime Database fornisce un linguaggio di regole dichiarativo che ti consente di definire la struttura dei dati, il modo in cui devono essere indicizzati e quando possono essere letti e scritti.

Scrivi nel tuo database

Recupera un'istanza del tuo database utilizzando getInstance() e fai riferimento alla posizione in cui vuoi scrivere.

Kotlin

// 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!");

In questo modo puoi salvare nel database una serie di tipi di dati, inclusi gli oggetti Java. Quando salvi un oggetto, le risposte di tutti i getter verranno salvate come elementi secondari di questa posizione.

Leggi dal database

Per aggiornare i dati dell'app in tempo reale, devi aggiungere un ValueEventListener al riferimento che hai appena creato.

Il metodo onDataChange() in questa classe viene attivato una volta quando il listener viene collegato e di nuovo ogni volta che i dati cambiano, inclusi i nodi figlio.

Kotlin

// 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) Configura ProGuard

Quando utilizzi Firebase Realtime Database nella tua app insieme a ProGuard, devi considerare come verranno serializzati e deserializzati gli oggetti del modello dopo l'offuscamento. Se utilizzi DataSnapshot.getValue(Class) o DatabaseReference.setValue(Object) per leggere e scrivere dati, devi 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 al lancio

Prima di lanciare l'app, ti consigliamo di consultare il nostro elenco di controllo per il lancio per assicurarti che l'app sia pronta per essere pubblicata.

Assicurati di attivare App Check per garantire che solo le tue app possano accedere ai tuoi database.

Passaggi successivi