Firebase Remote Config
plat_ios
plat_android
plat_web
plat_flutter
plat_cpp
plat_unity
Change the behavior and appearance of your web client or
server without
publishing an app update, at no cost, for unlimited daily active users.
Firebase Remote Config is a cloud service that lets you
change the behavior and appearance of your client app or server without requiring users to
download an app update. When using Remote Config, you create in-app default
values that control the behavior and appearance of your application. Then, you can later
use the Firebase console or the Remote Config backend APIs to override
in-app default values for all Remote Config API consumers or for segments of your user base. Your
app or server implementation controls when updates are applied, and it can frequently check for updates
and apply them with a negligible impact on performance.
iOS+
setup
Android setup
Web setup
Flutter setup
C++ setup
Unity setup
Backend APIs
Key capabilities
Quickly release changes to your app's user base
|
You can make changes to your app's default behavior and appearance by
changing parameter values remotely. For example, you could use a
Remote Config parameter as a feature flag to change your app's layout or
color theme to support a seasonal promotion, with no need to publish an app
update.
|
Customize your app for segments of your user base
|
You can use Remote Config to provide variations on your app's user
experience to different segments of your user base by app version, language,
Google Analytics audience
,
and
imported segment
.
|
Use Remote Config personalization to automatically and continuously
customize your app for individual users and optimize for strategic goals
|
Use machine learning to continuously tailor individual user experience to
optimize for goals like user engagement, ad clicks, and revenue—or any
custom event you can measure with Google Analytics—with
Remote Config
personalization
.
|
Iteratively roll out new features to targeted segments of your user base
and compare against an automatically-provisioned control group
|
Use
Remote Config rollouts to release targeted updates using parameter values as feature
flags, gradually releasing new functionality to your users.
Determine release
stability and success by comparing Crashlytics and Google Analytics
results between the group receiving your rollout value and an equal-sized
control group.
|
Run A/B tests to improve your app
|
You can use
A/B Testing
and
random
percentage targeting with Google Analytics
to A/B test improvements
to your app across different segments of your user base to validate
improvements before rolling them out to your entire user base.
|
How does it work?
Remote Config includes a client library that handles important tasks like
fetching parameter values and caching them, while still giving
you control over when new values are
activated
so that they affect your app's
user experience. This lets you safeguard your app experience by controlling the
timing of any changes.
We recommend adding
real-time
Remote Config
functionality to your fetch logic to automatically fetch the latest
Remote Config parameter values as soon as they're published.
The Remote Config client library
get
methods provide a single access
point for parameter values. Your app fetches values from Remote Config using
the same logic it uses to get in-app default values, so you can add the
capabilities of Remote Config to your app without writing a lot of code.
To override in-app default values, you use the Firebase console
or the Remote Config backend APIs to create
parameters with the same names as the parameters used in your app. For each
parameter, you can set a default value in Remote Config to override the
in-app default value, and you can also create conditional values to override
the in-app default value for app instances that meet certain conditions.
Remote Config also provides a server client library in the
Firebase Admin Node.js SDK v12.1.0+. Your server implementations can use this to
fetch values from server-specific templates stored by Remote Config. Learn
more at
Use Remote Config in server
environments
.
To learn more about parameters, conditions, and how Remote Config
resolves conflicts between conditional values, see
Remote Config Parameters and Conditions
.
Implementation path
|
Instrument your app with Remote Config
|
Define which aspects of your app's behavior and appearance you want to
be able to change using Remote Config, and translate these into the
parameters that you will use in your app.
|
|
Set default parameter values
|
Set the in-app default values for Remote Config parameters using
setDefaults()
and, optionally,
download
your Remote Config template defaults
.
|
|
Add logic to fetch, activate, and get parameter values
|
Your app can safely and efficiently fetch parameter values from the
Remote Config backend periodically and activate those fetched values.
Real-time Remote Config lets your apps fetch updated values as soon as a
new Remote Config version is published without the need for polling.
You can write your app
without worrying about the best time to fetch values, or even whether any
server-side values exist.
Your app uses
get
methods to
get the value of a parameter, similar to reading the value of a local
variable defined in your app.
|
|
(As needed) Update default and conditional parameter values in
Remote Config
|
You can define values in the Firebase console or the Remote Config
backend APIs to override in-app
default values. You can do this before or after you launch your app,
because the same
get
methods access in-app default values
and values fetched from the Remote Config backend. See
Remote Config templates and versioning
to learn more about managing and updating Remote Config parameters and
values.
|
|
(As needed) Update default parameter values in your app
|
Whenever you update your app, you should synchronize its default parameter
values with the Remote Config backend. You can quickly download a file
of default values in XML, property list (plist), or JSON format to update
your app using the REST API and Firebase console. For more information,
see
Download
Remote Config template defaults
.
|
|
Use A/B Testing and Remote Config personalization to customize user experience and
determine the best parameter values to achieve your goals.
|
After you implement Remote Config in your app, you can use it to
experiment, extend, and update your app with enhanced features like
A/B Testing
and
Remote Config personalization
.
|
Policies and limits
Note the following policies:
- Don't use Remote Config to make app updates that should require a user's
authorization. This could cause your app to be perceived as untrustworthy.
- Don't store confidential data in Remote Config parameter keys or
parameter values. Remote Config data is encrypted in transit, but end
users can access any default or fetched Remote Config parameter that is
available to their app instance.
- Don't attempt to circumvent the requirements of your app's target platform
using Remote Config.
Remote Config parameters and conditions are subject to certain limits.
To learn more, see
Limits on parameters and conditions
.
Note the following limits:
A Firebase project can have 2000 Remote Config parameters per template
type (client or server), which are subject to length and content limits
detailed in
Limits on parameters and conditions
.
Firebase stores up to 300 lifetime versions of your Remote Config
templates per template type (client or server). This 300
version lifetime limit includes stored version numbers for deleted templates.
See
Templates and versioning
for details.
You can have up to 24 running
A/B experiments
and
Remote Config rollouts
combined.
Looking to store other types of data?
- Cloud Firestore
is a flexible, scalable database for
mobile, web, and server development from Firebase and Google Cloud.
- Firebase Realtime Database
stores JSON application data,
like game state or chat messages, and synchronizes changes instantly across
all connected devices. To learn more about the differences between database
options, see
Choose a database: Cloud Firestore or Realtime Database
.
- Firebase Hosting
hosts global assets, including the
HTML, CSS, and JavaScript for your website as well as other
developer-provided assets like graphics, fonts, and icons.
- Cloud Storage
stores files such as images,
videos, and audio as well as other user-generated content.
Next steps