Catch up on everthing we announced at this year's Firebase Summit. Learn more

Paramètres et conditions de configuration à distance

Lorsque vous utilisez la console Firebase ou les API back - end Config à distance , vous définissez un ou plusieurs paramètres (paires clé-valeur) et de fournir des valeurs par défaut dans-application pour ces paramètres. Vous pouvez remplacer les valeurs par défaut de l'application en définissant des valeurs de paramètre 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.

Utilisation de la console Firebase ou l' API à distance Config REST , vous pouvez créer de nouvelles valeurs par défaut pour vos paramètres, ainsi que des valeurs conditionnelles qui sont utilisées pour les groupes cibles des 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 de configuration à distance. La version précédente est stockée, ce qui vous permet de la récupérer ou de la restaurer selon vos besoins. Ces opérations vous sont également accessibles via l'API REST.

Ce guide explique les paramètres, les conditions, les règles, les valeurs conditionnelles et comment les différentes valeurs de paramètres sont hiérarchisées sur le serveur de configuration à distance 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 composées d'une ou plusieurs règles qui doivent tous être évalués à true pour la condition d'évaluer à true pour une instance d'application donnée. Si la valeur d'une règle est définie (par exemple, si aucune valeur est disponible), cette règle va évaluer à false .

Par exemple, un paramètre qui définit la page de démarrage d'une application peut afficher des images différentes en fonction du type OS 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

Ou, une condition de temps pourrait être utilisé pour contrôler quand 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 voir le pourcentage chercher des valeurs conditionnelles de chaque paramètre. Cette mesure 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 à distance 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é suivante

  1. Tout d' abord, les valeurs conditionnelles sont appliquées, le cas échéant ont des conditions qui donnent des true pour une instance d'application donnée. Si plusieurs conditions sont évaluées à true , le premier ( en haut) , on montre dans l'interface utilisateur console Firebase a la priorité, et les valeurs conditionnelles associées à cette condition sont fournis lorsqu'une application va chercher les valeurs du back - end. Vous pouvez modifier la priorité des conditions par glisser-déposer des conditions dans l'onglet Conditions.

  2. S'il n'y a pas de valeurs conditionnelles avec des conditions qui évaluent à true , la valeur par défaut côté serveur est fourni lorsqu'une application va chercher des valeurs du back - end. Si un paramètre n'existe pas dans le back - end, ou si la valeur par défaut est à utiliser en application par défaut, aucune valeur n'est prévue pour ce paramètre quand une application va chercher des valeurs.

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

  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é extraite du backend, ou si les valeurs extraites du backend Remote Config n'ont pas été activées, l'application utilise la valeur par défaut de l'application.
  3. Si l'application n'utilise en application valeur par défaut a été définie, une valeur de type statique (comme 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é sur une getRemoteConfig demande.

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 le reste de l' API types peuvent être définis à l' aide du value_type champ dans l'objet de 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 des préfixes ou un 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 a un nom unique dans votre modèle de configuration à distance. Lors de la création de groupes de paramètres, gardez à l'esprit :

  • Les paramètres peuvent être inclus 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 les paramètres du groupe dans le Paramètres onglet de la console Firebase. Pour créer ou modifier un groupe :

  1. Sélectionnez Gérer les groupes.
  2. Cochez les cases pour les paramètres que vous souhaitez ajouter et sélectionnez Déplacer vers le groupe.
  3. Sélectionnez un groupe existant ou créer un nouveau groupe en entrant un nom et une description, et en sélectionnant Créer un nouveau groupe. Après avoir enregistré un groupe, il est disponible à publier en utilisant le bouton Publish change.

Créer des groupes par programmation

L' API à distance Config REST fournit un moyen automatisé pour créer et publier des groupes de paramètres. En supposant que vous connaissiez REST et que vous soyez configuré pour autoriser les requêtes à 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.

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

Par exemple, voici un extrait d'une révision du modèle qui ajoute le groupe de paramètres « nouveau menu » avec un seul 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 à distance Config REST, comme indiqué dans la référence de l' expression conditionnelle .

Type de règle Les opérateurs) Valeurs) Noter
Application == Sélectionnez dans une liste d'ID d'application pour les applications associées à votre projet Firebase. Lorsque vous ajoutez une application à Firebase, vous entrez un ID bundle ou le nom de package Android qui définit un attribut qui est exposé comme ID d' application dans les règles Config à distance.

Utilisez cet attribut comme suit :
  • Pour les plates - formes Apple: utilisation de l'application CFBundleIdentifier . Vous pouvez trouver le Bundle Identifier dans l'onglet Général pour cible principale dans Xcode de votre application.
  • Pour Android: Utiliser de l'application applicationId . Vous pouvez trouver le applicationId dans votre niveau d'application build.gradle fichier.
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 ID App pour sélectionner une application Android / Apple associé à votre projet Firebase.

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

Remarque: Assurez - vous que votre application d' Apple utilise Firebase plates - formes Apple SDK la version 6.24.0 ou au- dessus, comme CFBundleShortVersionString ne sont pas envoyées dans les versions antérieures (voir les notes de version ).

Pour Android: Utiliser de l'application versionName .

Les comparaisons de chaînes pour cette règle sont sensibles à la casse. Lorsque vous utilisez les exactement matchs, contient, ne contient pas, ou opérateur 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 dans RE2 format. Votre expression régulière peut correspondre à tout ou partie de la chaîne de version cible. Vous pouvez également utiliser les ^ et $ ancres pour correspondre au début, à la fin, ou totalité 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 builds de votre application à cibler.

Avant d' utiliser cette règle, vous devez utiliser une règle ID App 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 à l'application de CFBundleVersion pour Apple et codeVersion pour Android. Les comparaisons de chaînes pour cette règle sont sensibles à la casse.

Lorsque vous utilisez les exactement matchs, contient, ne contient pas, ou opérateur 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 dans RE2 format. Votre expression régulière peut correspondre à tout ou partie de la chaîne de version cible. Vous pouvez également utiliser les ^ et $ ancres pour correspondre au début, à la fin, ou totalité 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 ID App pour sélectionner une application Web associée à votre projet Firebase.

Cette règle est évaluée à true pour une instance d'application Web donnée si le système d' exploitation et sa version correspond à 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 ID App pour sélectionner une application Web associée à votre projet Firebase.

Cette règle est évaluée à true pour une instance d'application Web donnée si le navigateur et sa version correspond à une valeur cible dans la liste spécifiée.
Date/Heure <=, > 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.
Utilisateur dans un centile aléatoire <=, > 0-100

Utilisez ce champ pour appliquer un changement à un échantillon aléatoire d'instances d'applications (avec la taille des échantillons aussi petits que .0001%), en utilisant le <= et> les opérateurs à segmenter les utilisateurs (instances d'applications) en groupes.

Chaque instance d'application est constamment mis en correspondance avec un nombre entier ou d'une fraction aléatoire, selon une clé définie dans ce projet. Une règle utilisera la clé par défaut (présentée comme DEF dans la console Firebase) sauf si vous sélectionnez ou créer une autre clé. Vous pouvez retourner une règle à l' aide de la clé par défaut en effaçant les utilisateurs Randomize en utilisant ce domaine clé. Vous pouvez utiliser une seule clé entre les règles pour traiter de manière cohérente les mêmes instances d'application dans des plages de pourcentage données. Ou, vous pouvez sélectionner un nouveau groupe d'instances d'application attribué au hasard pour une plage de pourcentage donnée en créant une nouvelle clé.

Par exemple, pour créer deux conditions connexes que chaque appliquent à 5% des utilisateurs d'une application non-chevauchement, vous pourriez avoir une condition comprennent un <= règle des 5%, et une autre condition comprennent à la fois une> règle des 5% et <= règle des 10%. Pour permettre à certains utilisateurs d'apparaître au hasard dans les deux groupes, utilisez des clés différentes pour les règles dans chaque condition.

Utilisateur dans l'audience == 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 d'ID d'application pour sélectionner une application associée à votre projet Firebase.

Note: Parce que beaucoup Analytics publics sont définis par des événements ou des propriétés de l' utilisateur, qui peuvent être basées les actions des utilisateurs de l' application, il peut prendre un certain temps pour un utilisateur en règle d'audience pour prendre effet pour une instance d'application donnée.

Appareil dans la région/le pays == Sélectionnez une ou plusieurs régions ou pays. Cette règle est évaluée à true pour une instance d'application donnée si l'instance est dans l' une des régions ou des pays énuméré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).
Langue de l'appareil == Sélectionnez une ou plusieurs langues. Cette règle est évaluée à 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 énumérées.
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 ne pouvez définir que 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 un entier/un flottant.
Faites votre choix dans une liste de propriétés utilisateur Google Analytics disponibles. Pour savoir comment vous pouvez utiliser les propriétés de l' utilisateur pour personnaliser votre application pour des segments très spécifiques de votre base d'utilisateurs, voir les propriétés à distance Config et de l' utilisateur .

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

Lorsque vous utilisez les exactement matchs, contient, ne contient pas ou opérateur 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 dans RE2 format. Votre expression régulière peut correspondre à tout ou partie de la chaîne de version cible. Vous pouvez également utiliser les ^ et $ ancres pour correspondre au début, à la fin, ou totalité d'une chaîne cible.

Remarque: les propriétés utilisateur collectées automatiquement ne sont pas actuellement disponibles lors de la création des conditions Config à distance.
Segment importé == Sélectionnez un ou plusieurs segments importés. Cette règle exige la mise en place personnalisée segments importés .
Identifiant d'installation == Spécifiez un ou plusieurs ID d'installation (jusqu'à 50) à cibler. Cette règle est évaluée à true pour une installation donnée si l'ID de cette installation dans la liste séparée par des virgules des valeurs.

Pour savoir comment vous pouvez obtenir ID d'installation, voir Récupérer les identifiants clients .

Recherche de paramètres et conditions

Vous pouvez rechercher votre touches de paramètres du projet, les valeurs des paramètres et des conditions de la console Firebase en utilisant la boîte de recherche en haut de l'onglet Paramètres à distance Config.

Limites des paramètres et conditions

Dans un projet Firebase, vous pouvez avoir jusqu'à 2 000 paramètres et jusqu'à 500 conditions. Les clés de paramètre peuvent comporter 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 valeur de paramètre dans un projet ne peut pas dépasser 1 000 000 de caractères.

Prochaines étapes

Pour commencer la configuration de votre projet Firebase, voir Mise en place d' un projet à distance Firebase Config .