Get Started with Firebase Remote Config for Unity

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 service, and control when fetched values are made available to your app. To learn more, see Remote Config API Overview.

Add Remote Config to your app

Before you can use the Firebase Remote Config, you will need to create a Firebase project, and add the Firebase Unity SDK packages to your Unity project.

Setup:

Prerequisites

Android

iOS

  • Unity 5.0 or later
  • Xcode 7.0 or later

If you don't have a Unity project already, you can download one of our quickstart samples and experiment with a specific Firebase feature. If you're using a quickstart, remember to get the bundle identifier from the project settings; you need it for the next step.

Set up your app in the Firebase console

To add Firebase to your app, you need a Firebase project and a Firebase configuration file for your app.

Create a Firebase project in the Firebase console if you don't already have one. If you already have an existing Google project associated with your mobile app, click Import Google Project. Otherwise, click Add project.

Android

  1. Click Add Firebase to your Android app and follow the setup steps. If you're importing an existing Google project, this may happen automatically and you can just download the config file.
  2. When prompted, enter your app's package name. It's important to enter the package name your app is using; this can only be set when you add an app to your Firebase project.
  3. Download a google-services.json file when instructed. You can redownload this file again at any time.
  4. Copy this file to anywhere inside your project's assets folder.

IOs

  1. Click Add Firebase to your iOS app and follow the setup steps. If you're importing an existing Google project, this may happen automatically and you can just download the config file.
  2. When prompted, enter your app's bundle ID. It's important to enter the bundle ID your app is using; this can only be set when you add an app to your Firebase project.
  3. Download a GoogleService-Info.plist file when instructed. You can redownload this file again at any time.
  4. Add the GoogleService-Info.plist file to the project.

  5. Drag the GoogleService-Info.plist downloaded from the Firebase console into any folder in the Unity project.

Add the Firebase Unity SDK to your app

  1. Download the Firebase Unity SDK.
  2. Select the Assets > Import Package > Custom Package menu item.
  3. Import the FirebaseRemoteConfig.unitypackage package from the Firebase Unity SDK, downloaded previously.
  4. When the Import Unity Package window appears, click the Import button.

Build your app

Android

  1. Select the File > Build Settings menu option.
  2. Select Android in the Platform list.
  3. Click Switch Platform to select Android as the target platform.
  4. Wait for the spinner (compiling) icon in the bottom right corner of the Unity status bar to stop.
  5. Click Build and Run.

iOS

  1. Select the File > Build Settings menu option.
  2. Select iOS in the Platform list.
  3. Click Switch Platform to select iOS as the target platform.
  4. Wait for the spinner (compiling) icon in the bottom right corner of the Unity status bar to stop.
  5. Click Build and Run.

Set in-app default parameter values

You can set default parameter values in the Remote Config object, to be used if no other values have been retrieved from the service. This allows your app to behave as intended before it connects to the Remote Config service.

To do this, create a string dictionary, and populate it with key/value pairs representing the defaults you want to add. (Non-string properties will be converted to the property's type when SetDefaults is called.)

System.Collections.Generic.Dictionary defaults =
  new System.Collections.Generic.Dictionary();

// These are the values that are used if we haven't fetched data from the
// service yet, or if we ask for values that the service doesn't have:
defaults.Add("propertyname_string", "default local string");
defaults.Add("propertyname_int", 1);
defaults.Add("propertyname_float", 1.0);
defaults.Add("propertyname_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.SetDefaults(defaults);

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 service, fetched them, and then activated them, those values are available to your app. Otherwise, you get the in-app parameter values configured using SetDefaults().

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 in the service (as needed)

  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 from the service (as needed)

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

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.

Send feedback about...

Need help? Visit our support page.