Collega la tua app a Firebase

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

Creare una banca dati

  1. Passa alla sezione Realtime Database della console Firebase . Ti verrà richiesto di selezionare un progetto Firebase esistente. Segui il flusso di lavoro di creazione del database.

  2. Seleziona una modalità di avvio per le regole di sicurezza Firebase:

    Modalità di prova

    Utile per iniziare con le librerie client mobili e Web, ma consente a chiunque di leggere e sovrascrivere i tuoi dati. Dopo il test, assicurati di rivedere la sezione Informazioni sulle regole del database Firebase Realtime .

    Per iniziare con l'SDK Web, Apple o Android, seleziona modalità test.

    Modalità bloccata

    Nega tutte le operazioni di lettura e scrittura da client mobili e Web. I server delle applicazioni autenticati possono comunque accedere al database.

  3. Scegli una posizione per il database.

    A seconda della posizione del database , l'URL del nuovo database sarà in uno dei seguenti formati:

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

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

  4. Fare clic su Fine .

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) (solitamente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle ), aggiungi la dipendenza per Realtime Database libreria per Android. Ti consigliamo di utilizzare la distinta base Android Firebase per controllare il controllo delle versioni della libreria.

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

    // 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 la distinta base Firebase per Android , la tua app utilizzerà sempre le versioni compatibili delle librerie Firebase Android.

(Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare la distinta base

Se scegli di non utilizzare la distinta base Firebase, devi specificare ciascuna 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, il 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.3.1")
}
Cerchi un modulo di libreria specifico per Kotlin? A partire da ottobre 2023 (Firebase BoM 32.5.0) , sia gli sviluppatori Kotlin che quelli Java potranno dipendere dal modulo della libreria principale (per i dettagli, vedere le FAQ su questa iniziativa ).

Configura le regole di sicurezza del database in tempo reale

Il Realtime Database 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 utilizzando getInstance() e fai riferimento alla posizione in cui desideri 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!");

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

Leggi dal tuo database

Per aggiornare i dati della tua app in tempo reale, dovresti aggiungere un ValueEventListener al riferimento che hai 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 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 ottenere assistenza per domande o problemi relativi a ProGuard, visitare i forum della community di Guardsquare per ottenere assistenza da un esperto.

Preparati per il lancio

Prima di lanciare la tua app, ti consigliamo di consultare la nostra checklist di lancio per assicurarti che la tua app sia pronta!

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

Prossimi passi