Implementation de Firebase Remote Config
💡 Sujet
Firebase Remote Config permet de modifier le comportement et l'apparence de votre application sans avoir à publier une mise à jour sur le Play Store. Cela est utile pour activer des fonctionnalités progressivement (feature flags), effectuer des tests A/B ou personnaliser l'interface utilisateur.
📦 Dépendances
Ajoutez la dépendance suivante dans votre fichier build.gradle.kts (module app) :
dependencies {
// Import the BoM for the Firebase platform
implementation(platform("com.google.firebase:firebase-bom:32.7.0"))
// Add the dependency for the Remote Config library
implementation("com.google.firebase:firebase-config")
}⚙️ Initialisation
Récupérez l'instance singleton de FirebaseRemoteConfig et configurez les paramètres, comme l'intervalle minimum de récupération (fetch interval). Pour le développement, il est recommandé de le mettre à 0 pour tester rapidement.
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = 3600 // 1 heure par défaut
}
remoteConfig.setConfigSettingsAsync(configSettings)📄 Valeurs par défaut
Il est important de définir des valeurs par défaut dans l'application pour qu'elle fonctionne correctement avant que la configuration ne soit récupérée du serveur ou si le réseau est indisponible.
Créez un fichier XML dans res/xml/remote_config_defaults.xml :
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
<entry>
<key>welcome_message</key>
<value>Bienvenue dans l'application !</value>
</entry>
<entry>
<key>is_new_feature_enabled</key>
<value>false</value>
</entry>
</defaultsMap>Puis appliquez-les :
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)🔄 Récupération et Activation
Pour mettre à jour les valeurs depuis le serveur, utilisez fetchAndActivate(). Cette méthode récupère les nouvelles configurations et les rend disponibles immédiatement pour l'application.
remoteConfig.fetchAndActivate()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val updated = task.result
Log.d(TAG, "Config params updated: $updated")
} else {
Log.e(TAG, "Fetch failed")
}
// Appliquer les changements ici ou mettre à jour l'UI
displayWelcomeMessage()
}📖 Lecture des valeurs
Une fois activées, vous pouvez accéder aux valeurs en utilisant les clés définies :
val welcomeMessage = remoteConfig.getString("welcome_message")
val isFeatureEnabled = remoteConfig.getBoolean("is_new_feature_enabled")
if (isFeatureEnabled) {
// Afficher la nouvelle fonctionnalité
}🧩 Résumé
- Dépendance : Ajouter
firebase-config. - Defaults : Toujours fournir un fichier XML de valeurs par défaut (
setDefaultsAsync). - Fetch & Activate : Utiliser
fetchAndActivate()pour récupérer et appliquer les changements en une seule fois. - Utilisation : Lire les valeurs via
getString(),getBoolean(), etc.