Firebase Remote Config iOS Sample App Walkthrough

This guide walks you through the steps involved in integrating Remote Config into your iOS app. To learn more about the Remote Config API for iOS, see FIRRemoteConfig Class.

Requirements

Set up your project using the instructions provided in Adding Firebase to your iOS Project.

Install the client library

  1. Add the following dependency to your Podfile:

    pod 'Firebase/RemoteConfig'
    

  2. Save the file and run:

    pod install
    

This creates an .xcworkspace file for your application. Use this file for all future development on your application.

Create a Remote Config project for the quickstart sample

The quickstart sample provides an example of using Remote Config to apply a specified discount if a promotion is in effect. Before running the quickstart sample, you should set up a Remote Config project.

In the Firebase console, click Create New Project, and then follow the instructions to Set up a Firebase Remote Config Project.

with the following parameters:

Parameter Key Default Value Notes:
is_promotion_on true Set to false to disable promotional discounts
discount 20 Promotional discount, defined as the amount of dollars or another currency that is subtracted from the price.

After configuring your project, run the quickstart sample to see a fictional product discounted as part of a sales promotion. You can change the values of these parameters in the project and then re-run the quickstart sample to see how Remote Config lets you change an app's behavior.

Build and run the quickstart sample

  1. Download the quickstart sample code and unzip it.

  2. Open a terminal window and navigate to the location of the sample project. Run pod install, then open the .xcworkspace file.

  3. Build and run the sample.

How it Works

First, the sample gets a Remote Config object instance and enables developer mode to allow for frequent refreshes of the cache:

Objective-C

Swift

Then, the sample sets in-app default values from a plist file:

Objective-C

Swift

Now, the sample creates a fetchWithExpirationDuration:completionHandler: request to fetch values from the Remote Config Server and calls activateFetched to make those values available to the app:

Objective-C

Swift

Now that the price has been updated, you can get the final price for use in the app:

Objective-C

Swift

You can access your Remote Config parameters using one of the stringValue, numberValue, dataValue or boolValue properties, or using the configValueForKey: methods.

Caching and throttling

Remote Config caches values locally after the first successful request. By default the cache expires after 12 hours, but you can change the cache expiration for a specific request by passing the desired cache expiration, in seconds, to fetchWithExpirationDuration:completionHandler:. If the values in the cache are older than the desired cache expiration, Remote Config will request fresh config values from the server. If your app requests fresh values using fetchWithExpirationDuration:completionHandler: several times, requests are throttled and your app is provided with a cached value.

During app development, you might want to refresh the cache very frequently (many times per hour) to let you rapidly iterate as you develop and test your app. To accommodate rapid iteration on a project with up to 10 developers, you can temporarily add a FIRRemoteConfigSettings property with isDeveloperModeEnabled set to true to your app, changing the caching settings of the FIRRemoteConfig object.

Send feedback about...

Need help? Visit our support page.