#firebase#remote-config#mobile#web#ab-testing#personalization#flutter#android#ios#sdk#devops#feature-flag

Firebase Remote Config 2026 : Le Guide Complet (Setup, Conditions, A/B Testing, Personalization, Rollouts)

Remote Config, c'est ce qui te permet de changer le comportement de ton app pour tous ou pour un segment d'utilisateurs, sans passer par un redéploiement ni une mise à jour. Voici le guide complet 2026, gratuit et prod-ready.

Remote Config, c'est la fonctionnalité Firebase la plus sous-estimée — et pourtant, la plus rentable. Elle te permet de changer le comportement et l'apparence de ton app (Android, iOS, Web, Flutter, Unity, backend) sans redéployer, sans mise à jour, sans passer par le Play Store ou l'App Store. Tu peux activer une nouvelle fonctionnalité pour 5 % de tes utilisateurs, tester deux couleurs de bouton en A/B, personnaliser une valeur en fonction du pays, de la version d'app, du profil utilisateur, ou même laisser un modèle de Machine Learning décider automatiquement de la meilleure variante à afficher à chaque utilisateur.

Et cerise sur le gâteau : c'est totalement gratuit, y compris pour un usage à grande échelle. En 2026, ne pas utiliser Remote Config dans une app en production revient à te priver d'un des outils les plus puissants du toolkit mobile moderne.

Ce guide est le plus complet en français en 2026 : concepts, workflow fetch/activate, conditions et ciblage, A/B Testing, Personalization ML, rollouts progressifs, exemples de code sur iOS, Android, Web et Flutter, limites, bonnes pratiques.

Remote Config, c'est quoi exactement ?

Firebase Remote Config est un service cloud qui te permet de définir des paramètres nommés (feature flags, valeurs de configuration, chaînes de texte, JSON complet, etc.) et de modifier leurs valeurs à distance depuis la console Firebase (ou l'API REST), sans que l'utilisateur n'ait besoin de mettre à jour l'application.

Techniquement, ton app :

  1. Définit des valeurs par défaut in-app (embarquées dans le binaire)
  2. Récupère régulièrement les valeurs distantes depuis Firebase (via fetch())
  3. Décide quand activer ces valeurs (via activate()) pour éviter de perturber une session en cours

Résultat : ta version d'app compilée reste stable, mais son comportement peut évoluer en temps réel selon ta stratégie produit.

Cas d'usage typiques

  • Feature flag : « active la nouvelle homepage pour 20 % des utilisateurs, mesure l'impact sur la rétention »
  • Kill switch : « désactive instantanément le module de paiement si un bug critique est détecté »
  • Personnalisation géographique : « affiche le prix en FCFA au Sénégal, en EUR en France, en XOF en Côte d'Ivoire »
  • Onboarding dynamique : « pour les utilisateurs installés depuis moins de 7 jours, affiche un tutoriel »
  • A/B testing : « teste deux couleurs de CTA, garde celle qui convertit le mieux »
  • Personalization ML : « laisse Firebase choisir automatiquement la meilleure image de bannière par utilisateur »
  • Rollout progressif : « déploie la nouvelle recherche à 5 % → 25 % → 50 % → 100 % en 3 jours »

Plateformes supportées en 2026

Remote Config est disponible officiellement sur 7 plateformes :

PlateformeSDK minimum
iOS / macOS (Apple platforms)Firebase SDK for Apple v4.5.0+ (pour A/B)
AndroidFirebase SDK Android v17.1.1+
Web (JavaScript)Firebase JavaScript SDK v12.8.0+
FlutterPackage firebase_remote_config
C++Firebase C++ SDK
UnityFirebase Unity SDK
Backend / ServerFirebase Admin SDK (Node, Java, Python, Go, C#)

Concepts fondamentaux à maîtriser

Paramètre (parameter)

Un paramètre est une clé nommée à laquelle est associée une valeur. Exemples :

  • welcome_message"Bienvenue !"
  • enable_new_checkouttrue
  • hero_image_url"https://cdn.example.com/hero_v2.png"
  • promo_config{"code": "SUMMER26", "discount": 15}

Valeur par défaut (default value)

Chaque paramètre a une valeur par défaut embarquée dans ton app. Elle est utilisée quand :

  • La première session (avant le premier fetch)
  • Le fetch a échoué (offline, quota atteint…)
  • Le paramètre n'existe pas côté serveur

Bonnes pratiques : mets toujours une valeur par défaut sensée. Ne compte jamais sur le fait que le fetch réussira.

Condition (condition)

Une condition cible un sous-ensemble d'utilisateurs. Exemples de critères :

  • Version d'app (iOS >= 3.2.0)
  • Langue (fr, en)
  • Pays (CI, FR, SN)
  • Audience Google Analytics
  • Premier ouvert (avant/après une date)
  • ID utilisateur spécifique
  • Random percentage (« 20 % des utilisateurs »)

Un paramètre peut avoir plusieurs conditions, évaluées dans l'ordre. La première qui matche gagne, sinon on retombe sur la valeur par défaut serveur, sinon sur la valeur in-app.

Template (template)

L'ensemble de tes paramètres + conditions constitue un template. Firebase garde un historique des 300 dernières versions du template, ce qui te permet de rollback rapidement en cas de problème.

Workflow fetch → activate : le cœur de Remote Config

C'est le concept le plus important à maîtriser. Récupérer et activer sont deux opérations séparées :

  1. fetch() : ton app télécharge les nouvelles valeurs depuis Firebase et les stocke localement (mais ne les applique pas encore)
  2. activate() : ton app applique les valeurs téléchargées (celles-ci deviennent la source de vérité pour tous les prochains getValue())

Pourquoi cette séparation ? Pour éviter qu'un changement en cours de session ne perturbe l'expérience utilisateur. Le pattern typique : fetch() en arrière-plan pendant que l'utilisateur utilise l'app, puis activate() au prochain démarrage.

Le SDK expose aussi fetchAndActivate() (combiné) pour les cas où c'est OK d'activer immédiatement.

Real-time Remote Config (2024+)

Depuis fin 2024, Firebase propose un Real-time Remote Config : ton app s'abonne aux mises à jour et est notifiée dès qu'un nouveau template est publié, sans polling. C'est le mode recommandé en 2026 pour les kill switches et les rollouts critiques.

Setup Remote Config : les 5 étapes

Étape 1 : Créer le projet Firebase et enregistrer ton app

  • Va sur la console Firebase
  • Crée un projet (ou utilise un existant)
  • Enregistre ton app (Android, iOS ou Web) et télécharge google-services.json / GoogleService-Info.plist / clés Web

Étape 2 : Ajouter le SDK Remote Config

Android (Gradle) :

implementation("com.google.firebase:firebase-config-ktx")

iOS (Swift Package Manager ou CocoaPods) :

pod 'Firebase/RemoteConfig'

Web (JavaScript) :

import { getRemoteConfig, fetchAndActivate, getValue } from "firebase/remote-config";

Flutter (pubspec.yaml) :

dependencies:
  firebase_remote_config: ^5.0.0

Étape 3 : Créer les paramètres depuis la console Firebase

  • Menu Run → Remote Config → Create configuration
  • Ajoute tes paramètres, définis leurs valeurs par défaut et leurs conditions
  • Clique sur Publish changes pour publier le template

Étape 4 : Initialiser Remote Config dans ton app

Kotlin (Android) :

val remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600 // 1h en prod
}
remoteConfig.setConfigSettingsAsync(configSettings)
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

Swift (iOS) :

let remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

JavaScript (Web) :

const remoteConfig = getRemoteConfig();
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
remoteConfig.defaultConfig = {
  welcome_message: "Bienvenue !",
  enable_new_checkout: false
};

Dart (Flutter) :

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
  fetchTimeout: const Duration(minutes: 1),
  minimumFetchInterval: const Duration(hours: 1),
));
await remoteConfig.setDefaults({
  'welcome_message': 'Bienvenue !',
  'enable_new_checkout': false,
});

Étape 5 : Fetch, activate et récupérer les valeurs

Kotlin :

remoteConfig.fetchAndActivate().addOnCompleteListener { task ->
    if (task.isSuccessful) {
        val updated = task.result
        val message = remoteConfig.getString("welcome_message")
        // Utilise le message dans ton UI
    }
}

Dart :

await remoteConfig.fetchAndActivate();
final message = remoteConfig.getString('welcome_message');
final enableCheckout = remoteConfig.getBool('enable_new_checkout');

Conditions et ciblage : où réside la vraie puissance

Les conditions sont ce qui distingue Remote Config d'un simple fichier de config. Depuis la console, tu peux cibler tes utilisateurs sur :

CritèreExemple
AppCible une plateforme spécifique (Android only, iOS only)
Version d'appCible les utilisateurs sur la v3.5.0+ uniquement
Système d'exploitationCible Android 13+, iOS 17+
Pays / RégionCible les utilisateurs en Côte d'Ivoire, Sénégal, France
LangueCible les utilisateurs en fr, en, ar
Audience AnalyticsCible une audience définie dans Google Analytics for Firebase (ex: "gros dépensiers")
Propriété utilisateurCible par une user property personnalisée
Premier ouvertCible les nouveaux utilisateurs (installés il y a moins de 7 jours)
ID utilisateurCible un ou plusieurs UIDs spécifiques (utile pour QA, staff, beta testers)
Random percentileCible aléatoirement 10 %, 25 %, 50 %... des utilisateurs

Exemple concret

Tu veux tester une nouvelle homepage :

  • Condition : platform == Android AND app_version >= 3.5.0 AND random_percent <= 20
  • Nom : new_homepage_test
  • Valeur pour cette condition : true
  • Valeur par défaut : false

Résultat : la nouvelle homepage est active pour 20 % de tes utilisateurs Android sur v3.5.0+, tout le reste voit l'ancienne.

A/B Testing avec Remote Config

Firebase A/B Testing intègre nativement Remote Config pour te permettre de comparer plusieurs variantes et mesurer leur impact sur des métriques business (revenus, rétention, conversion, événements custom).

Création d'un test A/B

  1. Firebase Console → DevOps & Engagement → A/B Testing
  2. Clique Create experiment
  3. Choisis Remote Config
  4. Définis :
    • Nom et description
    • Objectif (revenus, rétention, événement custom)
    • Ciblage (app, audience, langue, pays)
    • Variantes (contrôle + 1 à N variantes, avec les valeurs Remote Config correspondantes)
    • Distribution (% par variante)
  5. Lance l'expérience

Firebase collecte les données via Google Analytics, calcule la significativité statistique et t'indique la variante gagnante avec un intervalle de confiance.

SDK minimum requis pour A/B

  • Firebase SDK for Android v17.1.1+
  • Firebase SDK for Apple platforms v4.5.0+
  • Firebase JavaScript SDK v12.8.0+

Personalization : quand Firebase choisit pour toi

Remote Config Personalization est une des features les plus puissantes de Firebase en 2026. Au lieu de définir toi-même quelle variante afficher à qui, tu laisses un modèle de Machine Learning Firebase optimiser en continu pour maximiser l'objectif que tu choisis.

Concrètement :

  1. Tu crées un paramètre avec plusieurs variantes possibles (ex : 3 couleurs de bouton, 5 messages d'onboarding)
  2. Tu actives Personalize
  3. Tu choisis l'objectif à optimiser (clics, revenus, événement custom)
  4. Le modèle apprend automatiquement quelle variante fonctionne le mieux pour chaque utilisateur individuellement — un utilisateur A verra la variante 1, un utilisateur B la variante 3, en fonction de leurs profils implicites

C'est comme avoir un A/B test permanent qui s'améliore tout seul. Pas besoin de savoir "qui préfère quoi", le ML s'en charge.

Rollouts progressifs

Depuis 2024, Firebase propose des Rollouts dédiés (distincts de l'A/B Testing) pour déployer un changement progressivement :

  • Tu définis un paramètre à activer (ex : nouvelle recherche)
  • Tu fixes une progression : 5 % → 25 % → 50 % → 100 %
  • Firebase compare automatiquement les métriques (Crashlytics + Analytics) entre le groupe rollout et un groupe contrôle
  • Si les crashes ou une métrique clé se dégradent, Firebase te propose de rollback

C'est la vraie release engineering moderne appliquée au mobile — sans downtime, sans redéploiement, avec safety net automatique.

Bonnes pratiques Remote Config en production

  1. Toujours définir des valeurs par défaut robustes — l'app doit fonctionner même si le fetch échoue à 100 %
  2. Ne mets jamais de secrets dans Remote Config — les valeurs sont accessibles côté client, tu perds toute confidentialité
  3. minimumFetchInterval différent en dev vs prod — 0 secondes en dev pour tester, 3600 secondes minimum en prod
  4. Utilise Real-time RC pour les kill switches critiques — pas de polling, activation immédiate
  5. Nomme tes paramètres avec un préfixe (ux_, feat_, promo_) pour organiser ton template
  6. Documente chaque paramètre dans un README interne — sinon dans 6 mois tu ne sauras plus à quoi sert param_xyz
  7. Configure des conditions "staff only" ciblant tes UIDs QA pour tester avant rollout
  8. Publie les changements en tranches — pousse d'abord un paramètre puis un autre, jamais tout à la fois
  9. Combine avec App Check pour empêcher que des attaquants n'appellent Remote Config depuis des clients non légitimes — cf Firebase App Check + reCAPTCHA
  10. Utilise les versions du template pour rollback si un déploiement casse quelque chose

Limites et quotas 2026

RessourceLimite
Paramètres par template3 000
Conditions par template500
Versions historiques conservées300
Expériences A/B + rollouts concurrents24 (combinés)
Taille max d'une valeur paramètre1 000 000 caractères (1 MB)
Fréquence minimale de fetch recommandée1 fetch / heure en prod

Si tu approches les 3 000 paramètres, c'est probablement le signe qu'il faut restructurer ta config (regroupe les valeurs proches dans un seul paramètre JSON par exemple).

Prix Remote Config en 2026

Remote Config est totalement gratuit, quelle que soit la taille de ta base utilisateurs. Aucun compteur, aucun palier payant. C'est écrit noir sur blanc dans la doc officielle : « at no cost, for unlimited daily active users ».

Les seuls coûts indirects sont :

  • Bande passante côté client (les fetch consomment quelques KB par utilisateur)
  • Google Analytics si tu utilises A/B Testing avec des événements custom (mais Analytics reste gratuit dans le plan Spark)

Autrement dit : il n'y a aucune raison légitime de ne pas utiliser Remote Config dans une app en 2026.

Remote Config vs Feature Flags maison (LaunchDarkly, Unleash, etc.)

CritèreFirebase Remote ConfigLaunchDarkly / Unleash
PrixGratuit$$$$ (LaunchDarkly enterprise)
Intégration mobileNative, très bonneSDK correct mais plus lourd
Personalization MLOui, nativeNon
Rollouts + rollback auto CrashlyticsOuiNon natif
A/B Testing intégréOui, avec AnalyticsOui
Real-time push updatesOuiOui
UI consoleFirebase Console (grand public)UI dédiée feature flags
Backend / server-sideOui via Admin SDKOui, plus mature

Verdict : pour 99 % des apps mobiles / web modernes, Remote Config suffit largement et coûte 0 €. LaunchDarkly ne devient intéressant que dans des architectures enterprise complexes avec des besoins gouvernance fine et compliance stricte.

FAQ Firebase Remote Config 2026

Firebase Remote Config est-il vraiment gratuit ?

Oui, totalement. Aucun coût, quel que soit le nombre d'utilisateurs actifs par jour. C'est explicitement écrit dans la documentation officielle Firebase.

Puis-je utiliser Remote Config sans Google Analytics ?

Oui, tu peux utiliser les paramètres et conditions sans Analytics. Mais si tu veux A/B Testing ou Personalization, Analytics est requis (gratuit lui aussi).

Remote Config fonctionne-t-il offline ?

Oui. Les valeurs par défaut in-app + les dernières valeurs cachées assurent que ton app fonctionne même sans réseau. Le prochain fetch dès qu'il y a du réseau met à jour le cache.

Quel est l'intervalle de fetch recommandé en production ?

Minimum 3600 secondes (1h). Un intervalle plus court risque de saturer les quotas et de faire consommer inutilement de la data à tes utilisateurs. En dev, mets 0 pour tester rapidement.

Puis-je stocker des secrets ou tokens API dans Remote Config ?

Non, jamais. Les valeurs sont téléchargeables côté client, donc récupérables par n'importe qui via un reverse engineering de l'app. Utilise Cloud Functions ou Firestore avec des règles pour tout ce qui est sensible.

Comment tester un nouveau paramètre sans impact sur les vrais utilisateurs ?

Crée une condition User ID = [ton UID de test] et applique la nouvelle valeur uniquement à cette condition. Tu vois la modification sur ton compte, personne d'autre.

Puis-je utiliser Remote Config côté backend / server ?

Oui, via Firebase Admin SDK (Node.js, Python, Java, Go, C#). Utile pour Cloud Functions, API personnalisées, jobs cron.

Combien de paramètres puis-je créer maximum ?

3 000 paramètres par template. Si tu dépasses, restructure en regroupant les valeurs dans des paramètres JSON.

Remote Config supporte-t-il le real-time ?

Oui depuis 2024. Ton app peut s'abonner aux mises à jour et être notifiée dès qu'un nouveau template est publié, sans polling. C'est le mode recommandé pour les kill switches critiques.

Firebase Personalization, c'est du no-code ?

Oui. Tu définis les variantes dans la console et Firebase entraîne le modèle ML automatiquement. Aucune ligne de code ML à écrire côté ton app.

Pour aller plus loin


Remote Config est la brique manquante de 90 % des apps mobiles en production. Elle transforme ton app d'un binaire figé en un produit vivant qui peut évoluer par heure — sans que tes utilisateurs ne s'en rendent compte, sans stress de release, et sans surcoût. Ajoute la brique aujourd'hui, un paramètre à la fois, et tu ne pourras plus t'en passer. Le vrai luxe en 2026 : c'est totalement gratuit.

Sources : Firebase Remote Config — Doc officielle, Remote Config Parameters and Conditions, Remote Config Personalization, Firebase A/B Testing, A/B Testing avec Remote Config. Données 2026.