1. Introduction
Dernière mise à jour : 2021-03-09
Qu'est-ce que Firebase Remote Config ?
Firebase Remote Config est un service cloud qui vous permet de modifier le comportement et l'apparence de votre application sans demander aux utilisateurs d'en télécharger une mise à jour, et ce sans frais. Lorsque vous utilisez Remote Config, vous créez des valeurs par défaut dans l'application qui contrôlent son comportement et son apparence. Vous pouvez ensuite utiliser la console Firebase ou les API backend Remote Config afin de remplacer ces valeurs par défaut pour tous les utilisateurs de l'application ou pour certains segments de la base d'utilisateurs. Votre application contrôle le moment où les mises à jour sont appliquées. Elle peut vérifier fréquemment si des mises à jour sont disponibles et les appliquer avec un impact négligeable sur les performances.
Comment ça marche ?
Remote Config inclut une bibliothèque cliente qui gère des tâches importantes, comme l'extraction et la mise en cache des valeurs de paramètre. Vous pouvez toujours contrôler le moment où les nouvelles valeurs sont activées afin qu'elles affectent l'expérience utilisateur de votre application. Cela vous permet de protéger l'expérience de votre application en contrôlant le moment où les modifications sont appliquées.
Les méthodes get de la bibliothèque cliente Remote Config fournissent un point d'accès unique pour les valeurs de paramètre. Votre application obtient les valeurs côté serveur à l'aide de la même logique que celle utilisée pour obtenir les valeurs par défaut dans l'application. Vous pouvez donc ajouter les fonctionnalités de Remote Config à votre application sans écrire beaucoup de code.
Pour remplacer les valeurs par défaut dans l'application, utilisez la console Firebase ou les API backend Remote Config afin de créer des paramètres portant les mêmes noms que ceux utilisés dans votre application. Pour chaque paramètre, vous pouvez définir une valeur par défaut côté serveur afin de remplacer la valeur par défaut dans l'application. Vous pouvez également créer des valeurs conditionnelles pour remplacer la valeur par défaut dans l'application pour les instances d'application qui répondent à certaines conditions. Ce graphique montre comment les valeurs de paramètre sont hiérarchisées dans le backend Remote Config et dans votre application :

Points abordés
- Implémenter Firebase Remote Config
- Utiliser Firebase Remote Config pour modifier des valeurs sans mettre à jour votre application
Prérequis
- La dernière version d'Android Studio
- Un compte Firebase
- (recommandé, mais facultatif) Un appareil Android physique pour exécuter votre application
- Connaissances de base en Java ou Kotlin
2. Configuration
(Facultatif) Télécharger l'exemple de code
Dans cet atelier de programmation, vous allez créer votre propre application de test. Toutefois, si vous souhaitez voir et exécuter l'exemple d'application existant, vous pouvez télécharger l'exemple de code de démarrage rapide.
Cliquez sur le bouton suivant pour télécharger l'ensemble du code de cet atelier de programmation :
Décompressez le fichier ZIP téléchargé. Cela a pour effet de décompresser un dossier racine nommé quickstart-android-master.
Vous pouvez également cloner le dépôt GitHub à partir de la ligne de commande.
$ git clone https://github.com/firebase/quickstart-android.git
Le dépôt contient plusieurs dossiers. Nous allons utiliser le dossier
config.
(Facultatif) Importer l'exemple de code
Lancez Android Studio, puis sélectionnez "Import project" (Importer un projet) sur l'écran d'accueil. Ouvrez ensuite le dossier téléchargé et sélectionnez le dossier
config. Cliquez ensuite sur "Open" (Ouvrir).

Créer un projet Android
- Dans Android Studio, démarrez un nouveau projet.
- Sélectionnez "Basic Activity" (Activité simple).
- Sur l'écran "Configure Your Project" (Configurer votre projet) :
- Attribuez un nom à votre projet. Le nom du package et l'emplacement d'enregistrement sont générés automatiquement.
- Langue : Java
- SDK minimal : 16
3. Ajouter Firebase et Firebase Analytics à votre projet Android
Créer un projet Firebase
Avant de pouvoir ajouter Firebase à votre application Android, vous devez créer un projet Firebase pour vous connecter à votre application iOS. Consultez Comprendre les projets Firebase pour en savoir plus sur les projets Firebase.
- Dans la console Firebase, cliquez sur Add project (Ajouter un projet), puis sélectionnez ou saisissez un Project name (Nom du projet).

Si vous disposez d'un projet Google Cloud Platform (GCP) existant, vous pouvez le sélectionner dans le menu déroulant pour ajouter des ressources Firebase à ce projet.
- (Facultatif) Si vous créez un projet, vous pouvez modifier l'ID de projet.
Firebase attribue automatiquement un ID unique à votre projet Firebase. Consultez Comprendre les projets Firebase pour découvrir comment Firebase utilise l'ID de projet.
- Cliquez sur Continue (Continuer).
- Configurez Google Analytics pour votre projet. Vous pourrez ainsi profiter d'une expérience optimale avec les produits Firebase suivants :
- Firebase Crashlytics
- Firebase Predictions
- Firebase Cloud Messaging
- Messagerie dans l'application Firebase
- Firebase Remote Config
- Firebase A/B Testing
Lorsque vous y êtes invité, sélectionnez l'option permettant d'utiliser un compte Google Analytics existant ou d'en créer un. Si vous choisissez de créer un compte, sélectionnez le pays où vous souhaitez générer vos rapports Analytics, puis acceptez les paramètres de partage des données et les conditions d'utilisation de Google Analytics pour votre projet.


- Cliquez sur Create project (Créer un projet) ou sur Add Firebase (Ajouter Firebase) si vous utilisez un projet GCP existant.
Firebase provisionne automatiquement des ressources pour votre projet Firebase. Une fois le processus terminé, vous êtes redirigé vers la page de présentation de votre projet Firebase dans la console Firebase.
Enregistrer votre application auprès de Firebase
Une fois que vous avez créé un projet Firebase, vous pouvez y ajouter votre application Android.
Consultez Comprendre les projets Firebase pour en savoir plus sur les bonnes pratiques et les points à prendre en compte lorsque vous ajoutez des applications à un projet Firebase, y compris sur la gestion de plusieurs variantes de compilation.
- Accédez à la console Firebase.
- En haut de la page de présentation du projet, cliquez sur l'icône Android pour lancer le processus de configuration. Si vous avez déjà ajouté une application à votre projet Firebase, cliquez sur "Add app" (Ajouter une application) pour afficher les options de plate-forme.
- Saisissez le nom de package de votre application dans le champ Android package name (Nom du package Android).
- (Facultatif) Saisissez un App nickname (Pseudo de l'application).
- Laissez le champ SHA-1 vide, car il n'est pas obligatoire pour ce projet.
- Cliquez sur Register app (Enregistrer l'application).
Ajouter le fichier de configuration Firebase
Vous serez ensuite invité à télécharger un fichier de configuration contenant toutes les métadonnées Firebase nécessaires pour votre application. Cliquez sur Download google-services.json (Télécharger google-services.json) pour obtenir votre fichier de configuration Firebase Android (google-services.json).


Dans votre fichier Gradle au niveau du projet (build.gradle), ajoutez des règles pour inclure le plug-in Gradle des services Google. Vérifiez également que vous disposez du dépôt Maven de Google.
Fichier build.gradle au niveau du projet (<project>/build.gradle) :
buildscript {
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
}
dependencies {
// ...
// Add the following line:
classpath 'com.google.gms:google-services:4.3.5' // Google Services plugin
}
}
allprojects {
// ...
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
// ...
}
}
Dans votre fichier Gradle au niveau du module (au niveau de l'application) (généralement app/build.gradle), appliquez le plug-in Gradle des services Google :
build.gradle au niveau de l'application (<project>/<app-module>/build.gradle) :
apply plugin: ‘com.android.application'
// Ajoutez la ligne suivante :
apply plugin: ‘com.google.gms.google-services' // Plug-in des services Google
android {
// ...
}
Ajouter le SDK Firebase à votre application Android
Pour Remote Config, Google Analytics est requis pour le ciblage conditionnel de propriétés utilisateur et d'audiences avec des instances d'application. Assurez-vous d'activer Google Analytics dans votre projet.
(Cette opération est déjà effectuée dans l'exemple de code de démarrage rapide.)
À l'aide de la nomenclature Firebase Android, déclarez la dépendance pour la bibliothèque Android Remote Config dans votre fichier Gradle au niveau du module (au niveau de l'application) (généralement app/build.gradle). Avec la nomenclature Firebase Android, votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
De plus, lors de la configuration d'Analytics, vous devez ajouter le SDK Firebase pour Google Analytics à votre application. Sous les dépendances, ajoutez le code suivant :
app/build.gradle
dependencies {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:26.6.0')
// Declare the dependencies for the Remote Config and Analytics libraries
// When using the BoM, you don't specify versions in Firebase library dependencies
implementation 'com.google.firebase:firebase-config'
implementation 'com.google.firebase:firebase-analytics'
}
Synchroniser votre projet avec les fichiers Gradle
Pour vous assurer que toutes les dépendances sont disponibles pour votre application, synchronisez votre projet avec les fichiers Gradle en sélectionnant File > Sync Project with Gradle Files (Fichier > Synchroniser le projet avec les fichiers Gradle).
4. Examiner les principaux composants de Remote Config
Nous allons maintenant examiner les étapes à suivre pour utiliser Remote Config dans une application. Ces étapes ont déjà été effectuées dans le code de l'atelier de programmation de démarrage rapide. Veuillez utiliser cette section lorsque vous examinez le code de l'atelier de programmation de démarrage rapide pour comprendre ce qui se passe.
1. Extraire l'objet Singleton Remote Config
Extrayez une instance d'objet Remote Config et définissez l'intervalle minimal d'extraction pour effectuer régulièrement des actualisations :
MainActivity.java
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(3600)
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
L'objet Singleton est utilisé pour stocker les valeurs de paramètre par défaut dans l'application, extraire les valeurs de paramètre mises à jour à partir du backend et contrôler le moment où les valeurs extraites sont mises à la disposition de votre application.
Lors du développement, il est recommandé de définir un intervalle minimal d'extraction relativement faible. Pour en savoir plus, consultez la section Limitations.
2. Définir les valeurs de paramètre par défaut dans l'application
Vous pouvez définir des valeurs de paramètre par défaut dans l'application dans l'objet Remote Config. Ainsi, votre application se comporte comme prévu avant de se connecter au backend Remote Config, et des valeurs par défaut sont disponibles si aucune n'est définie dans le backend.
Vous pouvez définir un ensemble de noms de paramètres et de valeurs de paramètre par défaut à l'aide d'un objet Map ou d'un fichier de ressources XML stocké dans le dossier res/xml de votre application. L'exemple d'application de démarrage rapide Remote Config utilise un fichier XML pour définir les noms et les valeurs de paramètre par défaut. Voici comment créer votre propre fichier XML :
- Créez un dossier
xmlsous le dossierres.

- Effectuez un clic droit sur le dossier
xmlque vous venez de créer, puis créez un fichier.

- Définissez les valeurs par défaut. Dans la section suivante, vous allez essayer de modifier les valeurs par défaut dans le fichier XML de démarrage rapide Remote Config.
- Ajoutez ces valeurs à l'objet Remote Config à l'aide de setDefaultsAsync(int), comme indiqué ci-dessous :
MainActivity.java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
3. Obtenir les valeurs de paramètre à utiliser dans votre appli
Vous pouvez maintenant obtenir les valeurs de paramètre à partir de l'objet Remote Config. Si vous définissez des valeurs dans le backend, que vous les extrayez, puis que vous les activez, ces valeurs sont disponibles pour votre application. Sinon, vous obtenez les valeurs de paramètre dans l'application configurées à l'aide de setDefaultsAsync(int). Pour obtenir ces valeurs, appelez la méthode listée ci-dessous qui correspond au type de données attendu par votre application, en fournissant la clé de paramètre comme argument :
4. Extraire et activer les valeurs
- Pour extraire les valeurs de paramètre du backend Remote Config, appelez la méthode fetch(). Toutes les valeurs que vous définissez dans le backend sont extraites et stockées dans l'objet Remote Config.
- Pour mettre les valeurs de paramètre extraites à la disposition de votre application, appelez la méthode activate(). Si vous souhaitez extraire et activer des valeurs en un seul appel, vous pouvez utiliser une requête fetchAndActivate() pour extraire des valeurs du backend Remote Config et les mettre à la disposition de l'application :
MainActivity.java
mFirebaseRemoteConfig.fetchAndActivate()
.addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
@Override
public void onComplete(@NonNull Task<Boolean> task) {
if (task.isSuccessful()) {
boolean updated = task.getResult();
Log.d(TAG, "Config params updated: " + updated);
Toast.makeText(MainActivity.this, "Fetch and activate succeeded",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "Fetch failed",
Toast.LENGTH_SHORT).show();
}
displayWelcomeMessage();
}
});
Étant donné que ces valeurs de paramètre mises à jour affectent le comportement et l'apparence de votre application, vous devez activer les valeurs extraites à un moment qui garantit une expérience fluide pour votre utilisateur, par exemple la prochaine fois qu'il ouvre votre application. Pour en savoir plus et obtenir des exemples, consultez Stratégies de chargement de Remote Config.
Limitations
Si une application extrait des données trop souvent sur une courte période, les appels d'extraction sont limités et le SDK renvoie FirebaseRemoteConfigFetchThrottledException. Avant la version 17.0.0 du SDK, la limite était de cinq requêtes d'extraction sur une période de 60 minutes (les versions plus récentes ont des limites plus permissives).
Lors du développement d'une application, vous pouvez extraire et activer des configurations très fréquemment (plusieurs fois par heure) pour itérer rapidement lors du développement et du test de votre application. Pour permettre une itération rapide sur un projet avec jusqu'à 10 développeurs, vous pouvez définir temporairement un objet FirebaseRemoteConfigSettings avec un intervalle minimal d'extraction faible (setMinimumFetchIntervalInSeconds) dans votre application.
L'intervalle minimal d'extraction par défaut pour Remote Config est de 12 heures, ce qui signifie que les configurations ne seront extraites du backend qu'une seule fois sur une période de 12 heures, quel que soit le nombre d'appels d'extraction réellement effectués. Plus précisément, l'intervalle minimal d'extraction est déterminé dans l'ordre suivant :
- Le paramètre dans
fetch(long) - Le paramètre dans
FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long) - La valeur par défaut de 12 heures
Pour définir l'intervalle minimal d'extraction sur une valeur personnalisée, utilisez FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long).
5. Modifier le comportement de l'application avec Remote Config
Modifier les paramètres par défaut dans l'application
Ouvrez res/xml/remote_config_defaults.xml et remplacez les valeurs par défaut par d'autres valeurs.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- START xml_defaults -->
<defaultsMap>
<entry>
<key>loading_phrase</key>
<value>Fetching config...</value>
</entry>
<entry>
<key>welcome_message_caps</key>
<value>false</value>
</entry>
<entry>
<key>welcome_message</key>
<value>Welcome to my awesome app!</value>
</entry>
</defaultsMap>
<!-- END xml_defaults -->
Vérifier la modification de la valeur par défaut dans l'application
- Exécutez le projet dans un émulateur ou à l'aide d'un appareil de test pour vérifier le comportement.
- Cliquez sur "Open" (Ouvrir) dans la version Java ou Kotlin.

- Consultez le message de bienvenue dans la vue principale.

Définir les valeurs de paramètre dans le backend Remote Config
Nous allons maintenant tester l'envoi de valeurs via Remote Config. À l'aide de la console Firebase ou des API backend Remote Config, vous pouvez créer des valeurs par défaut côté serveur qui remplacent les valeurs dans l'application en fonction de la logique conditionnelle ou du ciblage utilisateur souhaités. Cette section décrit les étapes à suivre dans la console Firebase pour créer ces valeurs.
- Ouvrez la console Firebase, puis votre projet.
- Sélectionnez Remote Config dans le menu de gauche de la section "Engage" (Impliquer) pour afficher le tableau de bord Remote Config.
- Sous Add a parameter (Ajouter un paramètre), saisissez la
Parameter key.(Clé de paramètre). SousDefault value(Valeur par défaut), ajoutez le texte de votre choix. Cliquez ensuite sur "Add Parameter" (Ajouter un paramètre). Pour cet atelier de programmation, nous allons utiliser les clés de paramètre du fichierres/xml/remote_config_defaults.xml. Pour en savoir plus, consultez le tableau ci-dessous :
Clé de paramètre | Valeur par défaut ( | Description |
loading_phrase | Récupération de la configuration… | Chaîne ; affichée lors de l'extraction des valeurs Remote Config. |
welcome_message_caps | faux | Valeur booléenne ; si la valeur est "true", le message de bienvenue est en majuscules. |
welcome_message | Bienvenue dans mon application géniale ! | Chaîne ; message de bienvenue |
Exemple de capture d'écran :

- Une fois que vous avez terminé d'ajouter des paramètres, cliquez sur "Publish Changes" (Publier les modifications).
- Exécutez à nouveau votre application sur un émulateur ou un appareil, puis cliquez sur le bouton "Fetch Remote Welcome" (Extraire le message de bienvenue à distance).

- Le message de bienvenue doit être mis à jour en fonction de votre paramètre et de vos valeurs Remote Config.
6. Félicitations
Félicitations, vous avez utilisé Remote Config pour modifier le message de bienvenue. Vous pouvez utiliser Remote Config de nombreuses autres façons pour modifier et personnaliser des applications. Veuillez consulter les ressources supplémentaires ci-dessous :