Paramètres et conditions de configuration à distance

Lorsque vous utilisez la console Firebase ou les API backend Remote Config , vous définissez un ou plusieurs paramètres (paires clé-valeur) et fournissez des valeurs par défaut dans l'application pour ces paramètres. Vous pouvez remplacer les valeurs par défaut de l'application en définissant les valeurs des paramètres côté serveur. Les clés de paramètre et les valeurs de paramètre sont des chaînes, mais les valeurs de paramètre peuvent être converties en d'autres types de données lorsque vous utilisez ces valeurs dans votre application.

À l'aide de la console Firebase, du SDK Admin ou de l' API REST Remote Config , vous pouvez créer de nouvelles valeurs par défaut pour vos paramètres, ainsi que des valeurs conditionnelles utilisées pour cibler des groupes d'instances d'application. Chaque fois que vous mettez à jour votre configuration dans la console Firebase, Firebase crée et publie une nouvelle version de votre modèle Remote Config. La version précédente est stockée, vous permettant de la récupérer ou de la restaurer selon vos besoins. Ces opérations sont disponibles via la console Firebase, le SDK Firebase Admin et l'API REST et sont décrites plus en détail dans les versions du modèle Gérer la configuration à distance .

Ce guide explique les paramètres, les conditions, les règles, les valeurs conditionnelles et la manière dont les différentes valeurs de paramètres sont hiérarchisées sur le serveur de configuration distant et dans votre application. Il fournit également des détails sur les types de règles utilisées pour créer des conditions.

Conditions, règles et valeurs conditionnelles

Une condition est utilisée pour cibler un groupe d’instances d’application. Les conditions sont constituées d'une ou plusieurs règles qui doivent toutes être évaluées comme true pour que la condition soit évaluée comme true pour une instance d'application donnée. Si la valeur d'une règle n'est pas définie (par exemple, lorsqu'aucune valeur n'est disponible), cette règle sera évaluée comme false .

Par exemple, un paramètre qui définit la page de démarrage d'une application peut afficher différentes images en fonction du type de système d'exploitation en utilisant la règle simple if device_os = Android :

Capture d'écran du paramètre "splash_page" dans la console Firebase montrant sa valeur par défaut pour iOS et sa valeur conditionnelle pour Android

Une condition temporelle peut également être utilisée pour contrôler le moment où votre application affiche des articles promotionnels spéciaux.

Un paramètre peut avoir plusieurs valeurs conditionnelles qui utilisent différentes conditions, et les paramètres peuvent partager des conditions au sein d'un projet. Dans l' onglet Paramètres de la console Firebase, vous pouvez afficher le pourcentage de récupération pour les valeurs conditionnelles de chaque paramètre. Cette métrique indique le pourcentage de demandes au cours des dernières 24 heures qui ont reçu chaque valeur.

Priorité de la valeur du paramètre

Un paramètre peut être associé à plusieurs valeurs conditionnelles. Les règles suivantes déterminent quelle valeur est extraite du serveur de configuration distant et quelle valeur est utilisée dans une instance d'application donnée à un moment donné :

Les valeurs des paramètres côté serveur sont récupérées selon la liste de priorités suivante

  1. Tout d’abord, des valeurs conditionnelles sont appliquées, le cas échéant, si certaines conditions sont évaluées comme true pour une instance d’application donnée. Si plusieurs conditions sont évaluées à true , la première (en haut) affichée dans l'interface utilisateur de la console Firebase est prioritaire et les valeurs conditionnelles associées à cette condition sont fournies lorsqu'une application récupère les valeurs du backend. Vous pouvez modifier la priorité des conditions en glissant-déposant des conditions dans l'onglet Conditions .

  2. S'il n'existe aucune valeur conditionnelle dont les conditions sont évaluées à true , la valeur par défaut côté serveur est fournie lorsqu'une application récupère les valeurs du backend. Si un paramètre n’existe pas dans le backend ou si la valeur par défaut est définie sur Use in-app default , aucune valeur n’est fournie pour ce paramètre lorsqu’une application récupère les valeurs.

Dans votre application, les valeurs des paramètres sont renvoyées par les méthodes get selon la liste de priorités suivante

  1. Si une valeur a été récupérée depuis le backend puis activée, l'application utilise la valeur récupérée. Les valeurs des paramètres activés sont persistantes.
  2. Si aucune valeur n'a été récupérée depuis le backend, ou si les valeurs récupérées depuis le backend Remote Config n'ont pas été activées, l'application utilise la valeur par défaut de l'application.

    Pour plus d'informations sur l'obtention et la définition des valeurs par défaut, consultez Télécharger les valeurs par défaut du modèle de configuration à distance .

  3. Si aucune valeur par défaut dans l'application n'a été définie, l'application utilise une valeur de type statique (telle que 0 pour int et false pour boolean ).

Ce graphique résume la façon dont les valeurs des paramètres sont hiérarchisées dans le backend Remote Config et dans votre application :

Diagramme montrant le flux décrit par les listes ordonnées ci-dessus

Types de données de valeur de paramètre

Remote Config vous permet de sélectionner un type de données pour chaque paramètre et valide toutes les valeurs côté serveur par rapport à ce type avant une mise à jour du modèle. Le type de données est stocké et renvoyé lors d'une requête getRemoteConfig .

Les types actuellement pris en charge sont :

  • String
  • Boolean
  • Number
  • JSON

Dans l'interface utilisateur de la console Firebase, le type de données peut être sélectionné dans une liste déroulante à côté de la clé de paramètre. Dans l'API REST, les types peuvent être définis à l'aide du champ value_type dans l'objet paramètre.

Groupes de paramètres

Remote Config vous permet de regrouper les paramètres pour une interface utilisateur et un modèle mental plus organisés.

Par exemple, disons que vous devez activer ou désactiver trois types d'authentification différents lors du déploiement d'une nouvelle fonctionnalité de connexion. Avec Remote Config, vous pouvez créer les trois paramètres pour activer les types comme vous le souhaitez, puis les organiser dans un groupe nommé « Nouvelle connexion », sans avoir besoin d'ajouter de préfixes ou de tri spécial.

Vous pouvez créer des groupes de paramètres à l'aide de la console Firebase ou de l'API REST Remote Config. Chaque groupe de paramètres que vous créez possède un nom unique dans votre modèle Remote Config. Lors de la création de groupes de paramètres, gardez à l'esprit :

  • Les paramètres ne peuvent être inclus que dans un seul groupe à la fois, et une clé de paramètre doit toujours être unique pour tous les paramètres.
  • Les noms de groupes de paramètres sont limités à 256 caractères.
  • Si vous utilisez à la fois l'API REST et la console Firebase, assurez-vous que toute logique de l'API REST est mise à jour pour gérer les groupes de paramètres lors de la publication.

Créer ou modifier des groupes de paramètres à l'aide de la console Firebase

Vous pouvez regrouper les paramètres dans l'onglet Paramètres de la console Firebase. Pour créer ou modifier un groupe :

  1. Sélectionnez Gérer les groupes .
  2. Cochez les cases des paramètres que vous souhaitez ajouter et sélectionnez Déplacer vers le groupe .
  3. Sélectionnez un groupe existant ou créez un nouveau groupe en saisissant un nom et une description, puis en sélectionnant Créer un nouveau groupe . Après avoir enregistré un groupe, il peut être publié à l'aide du bouton Publier les modifications .

Créer des groupes par programmation

L' API REST Remote Config fournit un moyen automatisé de créer et de publier des groupes de paramètres. En supposant que vous êtes familier avec REST et que vous êtes configuré pour autoriser les requêtes vers l'API, vous pouvez effectuer ces étapes pour gérer les groupes par programmation :

  1. Récupérer le modèle actuel
  2. Ajoutez des objets JSON pour représenter vos groupes de paramètres
  3. Publiez les groupes de paramètres à l'aide d'une requête HTTP PUT.

L'objet parameterGroups contient des clés de groupe, avec une description imbriquée et une liste de paramètres groupés. Notez que chaque clé de groupe doit être globalement unique.

Par exemple, voici un extrait d'une révision de modèle qui ajoute le groupe de paramètres "nouveau menu" avec un paramètre, pumpkin_spice_season :

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

Types de règles de condition

Les types de règles suivants sont pris en charge dans la console Firebase. Une fonctionnalité équivalente est disponible dans l'API REST Remote Config, comme détaillé dans la référence de l'expression conditionnelle .

Type de règle Les opérateurs) Valeurs) Note
Application == Faites votre sélection dans une liste d'ID d'application pour les applications associées à votre projet Firebase. Lorsque vous ajoutez une application à Firebase, vous saisissez un ID de bundle ou un nom de package Android qui définit un attribut exposé en tant qu'ID d'application dans les règles de configuration à distance.

Utilisez cet attribut comme suit :
  • Pour les plates-formes Apple : utilisez le CFBundleIdentifier de l'application. Vous pouvez trouver l' identifiant du bundle dans l'onglet Général pour la cible principale de votre application dans Xcode.
  • Pour Android : utilisez l' applicationId de l'application. Vous pouvez trouver l' applicationId dans le fichier build.gradle au niveau de votre application.
Version de l'application Pour les valeurs de chaîne :
correspond exactement,
contient,
ne contient pas,
expression régulière

Pour les valeurs numériques :
=, ≠, >, ≥, <, ≤

Spécifiez la ou les versions de votre application à cibler.

Avant d'utiliser cette règle, vous devez utiliser une règle App ID pour sélectionner une application Android/Apple associée à votre projet Firebase.

Pour les plates-formes Apple : utilisez le CFBundleShortVersionString de l'application.

Remarque : assurez-vous que votre application Apple utilise le SDK des plates-formes Apple Firebase version 6.24.0 ou supérieure, car CFBundleShortVersionString n'est pas envoyé dans les versions antérieures (voir notes de version ).

Pour Android : utilisez le nom de version de l'application.

Les comparaisons de chaînes pour cette règle sont sensibles à la casse. Lorsque vous utilisez l'opérateur exactement matches , contient , ne contient pas ou d'expression régulière , vous pouvez sélectionner plusieurs valeurs.

Lorsque vous utilisez l'opérateur d'expression régulière , vous pouvez créer des expressions régulières au format RE2 . Votre expression régulière peut correspondre à tout ou partie de la chaîne de version cible. Vous pouvez également utiliser les ancres ^ et $ pour faire correspondre le début, la fin ou l'intégralité d'une chaîne cible.

Numéro de build Pour les valeurs de chaîne :
correspond exactement,
contient,
ne contient pas,
expression régulière

Pour les valeurs numériques :
=, ≠, >, ≥, <, ≤

Spécifiez la ou les versions de votre application à cibler.

Avant d'utiliser cette règle, vous devez utiliser une règle App ID pour sélectionner une application Apple ou Android associée à votre projet Firebase.

Cet opérateur est disponible uniquement pour les applications Apple et Android. Il correspond au CFBundleVersion pour Apple et au versionCode pour Android de l'application. Les comparaisons de chaînes pour cette règle sont sensibles à la casse.

Lorsque vous utilisez l'opérateur exactement matches , contient , ne contient pas ou d'expression régulière , vous pouvez sélectionner plusieurs valeurs.

Lorsque vous utilisez l'opérateur d'expression régulière , vous pouvez créer des expressions régulières au format RE2 . Votre expression régulière peut correspondre à tout ou partie de la chaîne de version cible. Vous pouvez également utiliser les ancres ^ et $ pour faire correspondre le début, la fin ou l'intégralité d'une chaîne cible.

Plate-forme == IOS
Android
la toile
Système opérateur ==

Spécifiez le(s) système(s) d'exploitation à cibler.

Avant d'utiliser cette règle, vous devez utiliser une règle App ID pour sélectionner une application Web associée à votre projet Firebase.

Cette règle est évaluée comme true pour une instance d'application Web donnée si le système d'exploitation et sa version correspondent à une valeur cible dans la liste spécifiée.
Navigateur ==

Spécifiez le(s) navigateur(s) à cibler.

Avant d'utiliser cette règle, vous devez utiliser une règle App ID pour sélectionner une application Web associée à votre projet Firebase.

Cette règle est évaluée comme true pour une instance d'application Web donnée si le navigateur et sa version correspondent à une valeur cible dans la liste spécifiée.
Catégorie d'appareil est, n'est pas mobile Cette règle évalue si l'appareil accédant à votre application Web est mobile ou non mobile (ordinateur de bureau ou console). Ce type de règle est uniquement disponible pour les applications Web.
Langues est dans Sélectionnez une ou plusieurs langues. Cette règle est évaluée comme true pour une instance d'application donnée si cette instance d'application est installée sur un appareil qui utilise l'une des langues répertoriées.
Pays/Région est dans Sélectionnez une ou plusieurs régions ou pays. Cette règle est évaluée comme true pour une instance d'application donnée si l'instance se trouve dans l'une des régions ou des pays répertoriés. Le code pays de l'appareil est déterminé à l'aide de l'adresse IP de l'appareil dans la demande ou du code pays déterminé par Firebase Analytics (si les données Analytics sont partagées avec Firebase).
Public(s) d'utilisateurs Comprend au moins un Sélectionnez-en une ou plusieurs dans une liste d'audiences Google Analytics que vous avez configurées pour votre projet.

Cette règle nécessite une règle App ID pour sélectionner une application associée à votre projet Firebase.

Remarque : Étant donné que de nombreuses audiences Analytics sont définies par des événements ou des propriétés d'utilisateur, qui peuvent être basées sur les actions des utilisateurs de l'application, la prise d'effet d'une règle Utilisateur dans l'audience pour une instance d'application donnée peut prendre un certain temps.

Propriété de l'utilisateur Pour les valeurs de chaîne :
contient,
ne contient pas,
correspond exactement,
expression régulière

Pour les valeurs numériques :
=, ≠, >, ≥, <, ≤

Remarque : Sur le client, vous pouvez définir uniquement des valeurs de chaîne pour les propriétés utilisateur. Pour les conditions qui utilisent des opérateurs numériques, Remote Config convertit la valeur de la propriété utilisateur correspondante en nombre entier/flottant.
Faites votre sélection dans une liste de propriétés utilisateur Google Analytics disponibles. Pour savoir comment utiliser les propriétés utilisateur pour personnaliser votre application pour des segments très spécifiques de votre base d'utilisateurs, consultez Configuration à distance et propriétés utilisateur .

Pour en savoir plus sur les propriétés utilisateur, consultez les guides suivants :

Lorsque vous utilisez l’opérateur exactement matches , contient , ne contient pas ou d’expression régulière , vous pouvez sélectionner plusieurs valeurs.

Lorsque vous utilisez l'opérateur d'expression régulière , vous pouvez créer des expressions régulières au format RE2 . Votre expression régulière peut correspondre à tout ou partie de la chaîne de version cible. Vous pouvez également utiliser les ancres ^ et $ pour faire correspondre le début, la fin ou l'intégralité d'une chaîne cible.

Remarque : Les propriétés utilisateur collectées automatiquement ne sont actuellement pas disponibles lors de la création de conditions de configuration à distance.
Utilisateur en pourcentage aléatoire Curseur (dans la console Firebase. L' API REST utilise les opérateurs <= , > et between ). 0-100

Utilisez ce champ pour appliquer une modification à un échantillon aléatoire d'instances d'application (avec des tailles d'échantillon aussi petites que 0,0001 %), à l'aide du widget coulissant pour segmenter les utilisateurs mélangés de manière aléatoire (instances d'application) en groupes.

Chaque instance d'application est mappée de manière persistante à un nombre entier ou fractionnaire aléatoire, selon une graine définie dans ce projet.

Une règle utilisera la clé par défaut (affichée comme Modifier la graine dans la console Firebase), sauf si vous modifiez la valeur de la graine. Vous pouvez rétablir une règle en utilisant la clé par défaut en effaçant le champ Seed .

Pour traiter de manière cohérente les mêmes instances d’application dans des plages de pourcentage données, utilisez la même valeur de départ dans toutes les conditions. Vous pouvez également sélectionner un nouveau groupe d’instances d’application attribué de manière aléatoire pour une plage de pourcentage donnée en spécifiant une nouvelle valeur de départ.

Par exemple, pour créer deux conditions liées qui s'appliquent chacune à 5 % des utilisateurs d'une application sans se chevaucher, vous pouvez configurer une condition pour qu'elle corresponde à un pourcentage compris entre 0 % et 5 % et configurer une autre condition pour qu'elle corresponde à une plage comprise entre 5 % et dix%. Pour permettre à certains utilisateurs d'apparaître de manière aléatoire dans les deux groupes, utilisez des valeurs de départ différentes pour les règles de chaque condition.

Segment importé est dans Sélectionnez un ou plusieurs segments importés. Cette règle nécessite la configuration de segments importés personnalisés.
Date/Heure Avant après Une date et une heure spécifiées, soit dans le fuseau horaire de l'appareil, soit dans un fuseau horaire spécifié tel que « (GMT+11) heure de Sydney ». Compare l'heure actuelle à l'heure de récupération de l'appareil.
Première ouverture Avant après Une date et une heure spécifiées, dans le fuseau horaire spécifié.

Correspond aux utilisateurs qui ouvrent pour la première fois l’application ciblée dans la période spécifiée.

Nécessite les SDK suivants :

  • SDK Firebase pour Google Analytics
  • SDK des plates-formes Apple v9.0.0+ ou Android SDK v21.1.1+ (Firebase BoM v30.3.0+)

ID d'installation est dans Spécifiez un ou plusieurs ID d'installation (jusqu'à 50) à cibler. Cette règle est évaluée comme true pour une installation donnée si l'ID de cette installation figure dans la liste de valeurs séparées par des virgules.

Pour savoir comment obtenir les ID d'installation, consultez Récupérer les identifiants client .
L'utilisateur existe (pas d'opérateur) Cible tous les utilisateurs de toutes les applications du projet en cours.

Utilisez cette règle de condition pour faire correspondre tous les utilisateurs du projet, quelle que soit l'application ou la plateforme.

Recherche de paramètres et de conditions

Vous pouvez rechercher les clés de paramètres, les valeurs de paramètres et les conditions de votre projet à partir de la console Firebase à l'aide du champ de recherche en haut de l'onglet Paramètres de configuration à distance.

Limites des paramètres et des conditions

Au sein d'un projet Firebase, vous pouvez avoir jusqu'à 2 000 paramètres et jusqu'à 500 conditions. Les clés de paramètre peuvent contenir jusqu'à 256 caractères, doivent commencer par un trait de soulignement ou une lettre anglaise (AZ, az) et peuvent également inclure des chiffres. La longueur totale des chaînes de valeurs de paramètres au sein d'un projet ne peut pas dépasser 1 000 000 de caractères.

Affichage des modifications apportées aux paramètres et aux conditions

Vous pouvez afficher les dernières modifications apportées à vos modèles Remote Config à partir de la console Firebase . Pour chaque paramètre et condition individuel, vous pouvez :

  • Affichez le nom de l'utilisateur qui a modifié le paramètre ou la condition en dernier lieu.

  • Si la modification s'est produite dans la même journée, affichez le nombre de minutes ou d'heures écoulées depuis la publication de la modification dans le modèle Remote Config actif.

  • Si la modification s'est produite il y a un ou plusieurs jours, affichez la date à laquelle la modification a été publiée dans le modèle Remote Config actif.

Mises à jour des paramètres

Sur la page Paramètres de configuration à distance, la colonne Dernière publication affiche le dernier utilisateur qui a modifié chaque paramètre et la dernière date de publication pour la modification :

  • Pour afficher les métadonnées de modification des paramètres groupés, développez le groupe de paramètres.

  • Pour trier par ordre croissant ou décroissant par date de publication, cliquez sur le titre de la colonne Dernière publication .

Mises à jour des conditions

Sur la page Conditions de configuration à distance, vous pouvez voir le dernier utilisateur qui a modifié la condition et la date à laquelle il l'a modifiée en regard de Dernière modification sous chaque condition.

Prochaines étapes

Pour commencer à configurer votre projet Firebase, consultez Configurer un projet de configuration à distance Firebase .