Documentation de référence sur les expressions conditionnelles Remote Config

Cette page contient des informations de référence pour créer des expressions conditionnelles à l'aide des API backend Remote Config ou de la console Firebase. Pour en savoir plus sur la configuration et l'utilisation des API backend, consultez la section Modifier Remote Config par programmation.

Éléments utilisés pour créer des conditions

L'API REST Remote Config accepte les mêmes éléments que vous pouvez utiliser pour créer des conditions lorsque vous configurez Remote Config à l'aide de la console Firebase:

Élément Description
&&

Permet de créer une "et" logique d'éléments si vous utilisez plusieurs éléments pour une condition. Si un élément est utilisé dans la syntaxe REST sans && , il est traité comme une condition.

Remarque:Un espace est requis avant et après les esperluettes. Par exemple : element1 && element2.

app.build

Valeur évaluée à TRUE ou FALSE en fonction de la valeur du numéro de build d'une application.

Remarque:Disponible uniquement sur les appareils Apple et Android. Pour Apple, utilisez la valeur CFBundleVersion, et pour Android, utilisez la valeur versionCode.

app.version

Renvoie la valeur TRUE ou FALSE en fonction de la valeur du numéro de version d'une application.

Remarque:Pour les appareils Android, utilisez la valeur versionName, et pour les appareils Apple, utilisez la valeur CFBundleShortVersionString.

app.id Élément basé sur l'ID de l'application Firebase de l'application
app.audiences Élément qui évalue à TRUE ou FALSE en fonction de la présence ou de l'absence de l'utilisateur dans une ou plusieurs audiences Firebase Analytics.
app.firstOpenTimestamp Élément basé sur la première fois que l'utilisateur lance une application, obtenu à partir de l'événement first_open Google Analytics. Utilise le format de date ISO avec la possibilité de spécifier un fuseau horaire fixe (par exemple, app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles')). Si aucun fuseau horaire n'est spécifié, le fuseau horaire GMT est utilisé.
app.userProperty Élément qui évalue à TRUE ou FALSE en fonction de la valeur numérique ou de la chaîne d'une propriété utilisateur Firebase Analytics.
app.operatingSystemAndVersion

Élément basé sur le système d'exploitation sur lequel une application s'exécute. Renvoie TRUE lorsque le système d'exploitation et la version du système d'exploitation correspondent à la cible spécifiée.

Remarque:Disponible uniquement pour les applications Web.

app.browserAndVersion

Élément basé sur le navigateur sur lequel une application s'exécute. Valeur TRUE renvoyée lorsque le navigateur et la version du navigateur correspondent à la cible spécifiée.

Remarque:Disponible uniquement pour les applications Web.

app.firebaseInstallationId Élément basé sur les ID d'installations d'appareils spécifiques. Valeur TRUE lorsque l'ID d'installation correspond à l'un des ID d'installation spécifiés.
device.country Élément basé sur la région/le pays dans lequel se trouve un appareil, conformément à la norme ISO 3166-1 alpha-2 (par exemple, États-Unis ou Royaume-Uni). Renvoie TRUE lorsqu'un pays correspond à un code pays attendu.
device.dateTime Élément basé sur l'heure de la dernière extraction effectuée par l'appareil. Utilise le format de date ISO avec l'option pour spécifier un fuseau horaire fixe (par exemple, dateTime('2017-03-22T13:39:44', 'America/Los_Angeles')).
device.language Élément basé sur la langue sélectionnée sur un appareil. La langue est représentée à l'aide d'un tag de langue IETF tel que es-ES, pt-BR ou en-US. Renvoie TRUE lorsqu'une langue correspond à un code de langue attendu.
device.os Élément basé sur le système d'exploitation utilisé sur un appareil (Apple ou Android). Renvoie TRUE lorsque le système d'exploitation de l'appareil est du type attendu.
percent Évalue à TRUE en fonction de l'inclusion d'un utilisateur dans un pourcentage fractionnaire attribué de manière aléatoire (avec des tailles d'échantillon aussi faibles que 0,000001%).

Une condition à élément unique contient trois champs:

  1. name défini arbitrairement (100 caractères maximum)
  2. Expression conditionnelle qui renvoie TRUE ou FALSE, composée des éléments présentés ci-dessus.
  3. (Facultatif) tagColor, qui peut être "BLUE", "BROWN", "CYAN", "DEEP_ORANGE", "GREEN", "INDIGO", "LIME", "ORANGE", "PINK", "PURPLE" ou "TEAL". La couleur est insensible à la casse et n'affecte que la façon dont les conditions sont affichées dans la console Firebase.

Opérateurs compatibles

Par exemple, app.build.notContains([123, 456]) renvoie TRUE si la version de l'application est 123 ou 492, mais renvoie FALSE si la version de l'application est 999. Par exemple, app.version.notContains([123, 456]) renvoie TRUE si la version de l'application est 123 ou 492, mais renvoie FALSE si la version de l'application est 999.
Élément Opérateurs compatibles Description
app.audiences .inAtLeastOne([...]) Renvoie TRUE si l'audience réelle correspond à au moins un nom d'audience de la liste.
Exemple:

app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])

app.audiences .notInAtLeastOne([...]) Renvoie TRUE si l'audience réelle ne correspond pas à au moins un nom d'audience de la liste.
app.audiences .inAll([...]) Renvoie TRUE si l'audience réelle est membre de chaque nom d'audience de la liste.
app.audiences .notInAll([...]) Renvoie TRUE si l'audience réelle n'appartient à aucune audience de la liste.
app.firstOpenTimestamp <=, > Compare l'heure de l'événement first_open à l'heure spécifiée dans la condition et renvoie TRUE ou FALSE en fonction de l'opérateur.
Exemple d'utilisation:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles').
Pour spécifier une plage:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') Si aucun fuseau horaire n'est spécifié, le fuseau horaire GMT est utilisé.
app.userProperty <, <=, ==, !=, >=, > Renvoie TRUE si la propriété utilisateur réelle est numériquement comparée à la valeur spécifiée de manière à correspondre à l'opérateur.
app.userProperty .contains([...]) Renvoie TRUE si l'une des valeurs cibles est une sous-chaîne de la propriété utilisateur réelle.
app.userProperty .notContains([...]) Renvoie TRUE si aucune des valeurs cibles n'est une sous-chaîne de la propriété utilisateur réelle.
app.userProperty .exactlyMatches([...]) Renvoie TRUE si la propriété utilisateur réelle correspond exactement (sensible à la casse) à l'une des valeurs cibles de la liste.
app.userProperty .matches([...]) Renvoie TRUE si une expression régulière cible de la liste correspond à une sous-chaîne ou à la totalité de la valeur réelle. Pour forcer la correspondance de l'ensemble de la chaîne, préfixez l'expression régulière par "^" et ajoutez-lui un suffixe "$". Utilise la syntaxe RE2.
app.id == Renvoie TRUE si la valeur spécifiée correspond à l'ID de l'application.
app.build <, <=, ==, !=, >=, > Renvoie TRUE si la version de l'application réelle est numériquement comparable à la valeur spécifiée de manière à correspondre à l'opérateur.
app.build .contains([...]) Renvoie TRUE si l'une des valeurs cibles est une sous-chaîne de la version de l'application actuelle. Par exemple, "a" et "bc" sont des sous-chaînes de "abc".
app.build .notContains([...]) Renvoie TRUE si aucune des valeurs cibles n'est une sous-chaîne du build de l'application.
app.build .exactlyMatches([...]) Renvoie TRUE si la version de l'application correspond exactement à l'une des valeurs cibles de la liste.
app.build .matches([...]) Renvoie TRUE si une expression régulière cible de la liste correspond à une sous-chaîne ou à la totalité de la valeur réelle. Pour forcer la correspondance de l'ensemble de la chaîne, préfixez l'expression régulière par "^" et ajoutez-lui un suffixe "$". Utilise la syntaxe RE2.
app.version <, <=, ==, !=, >=, > Renvoie TRUE si la version réelle de l'application est numériquement comparée à la valeur spécifiée de manière à correspondre à l'opérateur.
app.version .contains([...]) Renvoie TRUE si l'une des valeurs cibles est une sous-chaîne de la version réelle de l'application. Par exemple, "a" et "bc" sont des sous-chaînes de "abc".
app.version .notContains([...]) Renvoie TRUE si aucune des valeurs cibles n'est une sous-chaîne de la version actuelle de l'application.
app.version .exactlyMatches([...]) Renvoie TRUE si la version actuelle de l'application correspond exactement à l'une des valeurs cibles de la liste.
app.version .matches([...]) Renvoie TRUE si une expression régulière cible de la liste correspond à une sous-chaîne ou à la totalité de la valeur réelle. Pour forcer la correspondance de l'ensemble de la chaîne, préfixez l'expression régulière par "^" et ajoutez-lui un suffixe "$". Utilise la syntaxe RE2.
app.operatingSystemAndVersion .inOne([...]) Renvoie TRUE si l'OS et la version correspondent à une des valeurs cibles de la liste.
Par exemple:

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')])
    

app.browserAndVersion .inOne([...]) Renvoie TRUE si le navigateur et la version correspondent à l'une des valeurs cibles de la liste.
Par exemple:

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...] Renvoie TRUE si l'ID d'installation correspond à l'un de ceux spécifiés dans la liste. Exemple d'utilisation: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
device.country in [...] Renvoie TRUE si le pays de l'appareil correspond à l'un de ceux spécifiés dans la liste. Exemple d'utilisation: device.country in ['gb', 'us']. Le code pays de l'appareil est déterminé à l'aide de l'adresse IP de l'appareil dans la requête ou du code pays déterminé par Firebase Analytics (si les données Analytics sont partagées avec Firebase).
device.dateTime <=, > Compare l'heure actuelle à l'heure cible de la condition et renvoie TRUE ou FALSE en fonction de l'opérateur. Exemple d'utilisation : dateTime < dateTime('2017-03-22T13:39:44').
device.language in [...] Renvoie TRUE si l'une des langues de l'application correspond à une langue de la liste. Exemple d'utilisation: device.language in ['en-UK', 'en-US'].
device.os ==, != Renvoie TRUE si le système d'exploitation de l'appareil compare la valeur de ce champ à celle correspondant à l'opérateur.
percent <=, >, between Renvoie TRUE si la valeur du champ percent est comparée à la valeur attribuée de manière aléatoire correspondant à l'opérateur.

Vous pouvez spécifier un sémaphore pour sélectionner un nouveau groupe d'instances d'application attribué de manière aléatoire pour une plage de pourcentage donnée, comme décrit dans la section Types de règles de condition.

Pour ce faire, indiquez le nom du graine avant l'opérateur, comme dans l'exemple suivant :

percent('keyName') <= 10

Pour configurer une plage spécifique, vous pouvez utiliser l'opérateur between. Pour configurer une plage d'utilisateurs comprise entre 20 et 60 à l'aide du sénsé par défaut :

percent between 20 and 60

Pour configurer une plage d'utilisateurs comprise entre 60 et 80 à l'aide d'un générateur de nombres aléatoires personnalisé :

percent('seedName') between 60 and 80