Check out what’s new from Firebase at Google I/O 2022. Learn more

Premiers pas avec Firebase Remote Config

Vous pouvez utiliser Firebase Remote Config pour définir des paramètres dans votre application et mettre à jour leurs valeurs dans le cloud, ce qui vous permet de modifier l'apparence et le comportement de votre application sans distribuer de mise à jour d'application.

La bibliothèque Remote Config est utilisée pour stocker les valeurs de paramètre par défaut dans l'application, récupérer les valeurs de paramètre mises à jour à partir du backend Remote Config et contrôler quand les valeurs récupérées sont mises à la disposition de votre application. Pour en savoir plus, consultez Stratégies de chargement de Remote Config .

Ce guide vous guide à travers les étapes de démarrage et fournit des exemples de code, qui peuvent tous être clonés ou téléchargés à partir du référentiel firebase/quickstart-unity GitHub.

Ajouter Remote Config à votre application

Avant de pouvoir utiliser Remote Config , vous devez :

  • Enregistrez votre projet Unity et configurez-le pour utiliser Firebase.

    • Si votre projet Unity utilise déjà Firebase, il est déjà enregistré et configuré pour Firebase.

    • Si vous n'avez pas de projet Unity, vous pouvez télécharger un exemple d'application .

  • Ajoutez le SDK Firebase Unity (en particulier, FirebaseRemoteConfig.unitypackage ) à votre projet Unity.

Notez que l'ajout de Firebase à votre projet Unity implique des tâches à la fois dans la console Firebase et dans votre projet Unity ouvert (par exemple, vous téléchargez les fichiers de configuration Firebase à partir de la console, puis les déplacez dans votre projet Unity).

Définir les valeurs des paramètres par défaut dans l'application

Vous pouvez définir des valeurs de paramètre par défaut dans l'application dans l'objet Remote Config, afin que votre application se comporte comme prévu avant de se connecter au backend Remote Config, et pour que les valeurs par défaut soient disponibles si aucune n'est définie dans le backend.

Pour ce faire, créez un dictionnaire de chaînes et remplissez-le avec des paires clé/valeur représentant les valeurs par défaut que vous souhaitez ajouter. Si vous avez déjà configuré les valeurs des paramètres backend de Remote Config, vous pouvez télécharger un fichier contenant ces paires clé/valeur et l'utiliser pour construire votre dictionnaire de chaînes. Pour plus d'informations, consultez Télécharger les valeurs par défaut du modèle Remote Config .

(Les propriétés non-chaîne seront converties en type de propriété lorsque SetDefaultsAsync() est appelé).

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

Obtenir les valeurs des paramètres à utiliser dans votre application

Vous pouvez maintenant obtenir des valeurs de paramètre à partir de l'objet Remote Config. Si vous définissez des valeurs dans le backend Remote Config, les récupérez, puis les activez, ces valeurs sont disponibles pour votre application. Sinon, vous obtenez les valeurs des paramètres intégrés à l'application configurées à l'aide SetDefaultsAsync() .

Pour obtenir ces valeurs, utilisez GetValue() , en fournissant la clé de paramètre comme argument. Cela renvoie un ConfigValue , qui a des propriétés pour convertir la valeur en différents types de base.

Connectez votre application dans la console Firebase

Dans la console Firebase , ajoutez votre application à votre projet Firebase.

Définir les valeurs des paramètres

  1. Dans la console Firebase , ouvrez votre projet.
  2. Sélectionnez Remote Config dans le menu pour afficher le tableau de bord Remote Config.
  3. Définissez des paramètres avec les mêmes noms que les paramètres que vous avez définis dans votre application. Pour chaque paramètre, vous pouvez définir une valeur par défaut (qui finira par remplacer la valeur par défaut de l'application) et des valeurs conditionnelles. Pour en savoir plus, voir Paramètres et conditions de Remote Config .

Récupérer et activer des valeurs (si nécessaire)

Pour récupérer les valeurs des paramètres à partir du backend Remote Config, appelez la méthode FetchAsync() . Toutes les valeurs que vous définissez sur le backend sont extraites et mises en cache dans l'objet Remote Config.

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

Les valeurs extraites via FetchAsync() sont mises en cache localement lorsque l'extraction est terminée, mais ne sont pas disponibles tant que ActivateFetched() n'est pas appelé. Étant donné que FetchAsync() s'exécute de manière asynchrone, cela vous permet de vous assurer que les nouvelles valeurs ne sont pas appliquées au milieu du calcul, ou à d'autres moments qui pourraient causer des problèmes ou un comportement étrange.

(Facultatif) Activer le mode développeur

Pour activer le mode développeur, qui peut être utilisé pour désactiver la limitation pendant le développement, vous pouvez utiliser la propriété FirebaseRemoteConfig.Setting , en définissant un nouveau ConfigSettings avec IsDeveloperMode défini sur true.

Next steps

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including:

,

You can use Firebase Remote Config to define parameters in your app and update their values in the cloud, allowing you to modify the appearance and behavior of your app without distributing an app update.

The Remote Config library is used to store in-app default parameter values, fetch updated parameter values from the Remote Config backend, and control when fetched values are made available to your app. To learn more, see Remote Config loading strategies .

This guide walks you through the steps to get started and provides some sample code, all of which is available to clone or download from the firebase/quickstart-unity GitHub repository.

Add Remote Config to your app

Before you can use Remote Config , you need to:

  • Register your Unity project and configure it to use Firebase.

    • If your Unity project already uses Firebase, then it's already registered and configured for Firebase.

    • If you don't have a Unity project, you can download a sample app .

  • Add the Firebase Unity SDK (specifically, FirebaseRemoteConfig.unitypackage ) to your Unity project.

Note that adding Firebase to your Unity project involves tasks both in the Firebase console and in your open Unity project (for example, you download Firebase config files from the console, then move them into your Unity project).

Set in-app default parameter values

You can set in-app default parameter values in the Remote Config object, so that your app behaves as intended before it connects to the Remote Config backend, and so that default values are available if none are set in the backend.

To do this, create a string dictionary, and populate it with key/value pairs representing the defaults you want to add. If you have already configured Remote Config backend parameter values, you can download a file that contains these key/value pairs and use it to construct your string dictionary. For more information, see Download Remote Config template defaults .

(Non-string properties will be converted to the property's type when SetDefaultsAsync() is called).

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

Get parameter values to use in your app

Now you can get parameter values from the Remote Config object. If you set values in the Remote Config backend, fetched them, and then activated them, those values are available to your app. Otherwise, you get the in-app parameter values configured using SetDefaultsAsync() .

To get these values, use GetValue() , providing the parameter key as an argument. This returns a ConfigValue , which has properties to convert the value into various base types.

Connect your app in the Firebase console

In the Firebase console , add your app to your Firebase project.

Set parameter values

  1. In the Firebase console , open your project.
  2. Select Remote Config from the menu to view the Remote Config dashboard.
  3. Define parameters with the same names as the parameters that you defined in your app. For each parameter, you can set a default value (which will eventually override the in-app default value) and conditional values. To learn more, see Remote Config parameters and conditions .

Fetch and activate values (as needed)

To fetch parameter values from the Remote Config backend, call the FetchAsync() method. Any values that you set on the backend are fetched and cached in the Remote Config object.

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

Values fetched via FetchAsync() are cached locally when the fetch completes, but are not made available until ActivateFetched() is invoked. Since FetchAsync() executes asynchronously, this enables you to ensure that the new values are not applied mid-calculation, or at other times that might cause problems or strange behavior.

(Optional) Enable developer mode

To enable developer mode, which can be used to disable throttling during development, you can use the FirebaseRemoteConfig.Setting property, setting a new ConfigSettings with IsDeveloperMode set to true.

Next steps

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: