Connectez votre application à Firebase

Si vous ne l'avez pas déjà fait, ajoutez Firebase à votre projet Android .

Créer une base de données

  1. Accédez à la section Base de données en temps réel de la console Firebase . Vous serez invité à sélectionner un projet Firebase existant. Suivez le workflow de création de base de données.

  2. Sélectionnez un mode de démarrage pour vos règles de sécurité Firebase :

    Mode d'essai

    Idéal pour démarrer avec les bibliothèques clientes mobiles et Web, mais permet à quiconque de lire et d'écraser vos données. Après le test, assurez-vous de consulter la section Comprendre les règles de la base de données en temps réel Firebase .

    Pour démarrer avec le SDK Web, Apple ou Android, sélectionnez le mode test.

    Mode verrouillé

    Refuse toutes les lectures et écritures des clients mobiles et Web. Vos serveurs d'applications authentifiés peuvent toujours accéder à votre base de données.

  3. Choisissez un emplacement pour la base de données.

    En fonction de l' emplacement de la base de données , l'URL de la nouvelle base de données se présentera sous l'une des formes suivantes :

    • DATABASE_NAME .firebaseio.com (pour les bases de données dans us-central1 )

    • DATABASE_NAME . REGION .firebasedatabase.app (pour les bases de données de tous les autres emplacements)

  4. Cliquez sur Terminé .

Lorsque vous activez Realtime Database, cela active également l'API dans Cloud API Manager .

Ajoutez le SDK de base de données en temps réel à votre application

Dans le fichier Gradle de votre module (au niveau de l'application) (généralement <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle ), ajoutez la dépendance pour la base de données en temps réel bibliothèque pour Android. Nous vous recommandons d'utiliser la BoM Android Firebase pour contrôler la gestion des versions de la bibliothèque.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:32.8.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")
}

En utilisant Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.

(Alternative) Ajouter des dépendances de la bibliothèque Firebase sans utiliser la BoM

Si vous choisissez de ne pas utiliser la BoM Firebase, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.

Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons fortement d'utiliser la BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.

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")
}
Vous recherchez un module de bibliothèque spécifique à Kotlin ? À partir d' octobre 2023 (Firebase BoM 32.5.0) , les développeurs Kotlin et Java peuvent s'appuyer sur le module de bibliothèque principal (pour plus de détails, consultez la FAQ sur cette initiative ).

Configurer les règles de sécurité de la base de données en temps réel

La base de données en temps réel fournit un langage de règles déclaratives qui vous permet de définir comment vos données doivent être structurées, comment elles doivent être indexées et quand vos données peuvent être lues et écrites.

Écrivez dans votre base de données

Récupérez une instance de votre base de données à l'aide de getInstance() et référencez l'emplacement dans lequel vous souhaitez écrire.

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

Vous pouvez ainsi enregistrer une gamme de types de données dans la base de données, y compris des objets Java. Lorsque vous enregistrez un objet, les réponses de tous les getters seront enregistrées en tant qu'enfants de cet emplacement.

Lire à partir de votre base de données

Pour mettre à jour les données de votre application en temps réel, vous devez ajouter un ValueEventListener à la référence que vous venez de créer.

La méthode onDataChange() de cette classe est déclenchée une fois lorsque l'écouteur est attaché et à nouveau chaque fois que les données changent, y compris les enfants.

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());
    }
});

Facultatif : configurer ProGuard

Lorsque vous utilisez Firebase Realtime Database dans votre application avec ProGuard, vous devez réfléchir à la manière dont vos objets de modèle seront sérialisés et désérialisés après obscurcissement. Si vous utilisez DataSnapshot.getValue(Class) ou DatabaseReference.setValue(Object) pour lire et écrire des données, vous devrez ajouter des règles au fichier 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.** {
      *;
    }

Pour obtenir de l'aide pour des questions ou des problèmes liés à ProGuard, visitez les forums de la communauté Guardsquare pour obtenir l'aide d'un expert.

Préparez le lancement

Avant de lancer votre application, nous vous recommandons de parcourir notre liste de contrôle de lancement pour vous assurer que votre application est prête à fonctionner !

Assurez-vous d'activer App Check pour garantir que seules vos applications peuvent accéder à vos bases de données.

Prochaines étapes