RemoteConfig

* A RemoteConfig represents a Remote Config template.

A project's Remote Config template is evaluated during each application instance's fetch.

Note: Server templates currently support percentage conditions. Publishing a server template with unsupported conditional values will return a validation error. SeeRemote Config in Server Environments for more information.

The resolved value of a parameter is determined as follows:

Given theconditional values that refer totrueconditions for the application instance, the parameter's resolved value is the conditional value whosename is the earliest in theconditions list.

Else, if the parameter has adefault value, the resolved value is set to the default value.

Else, the parameter has no value and is omitted from the result that the application instance fetches.

For example, assume we have parameter keyfruit, with default valuepear and conditional value submap{"is_ios": "apple", "is_in_20_percent": "banana"} where"is_ios" and"is_20_percent" are names of conditions in the ordered condition list. The value offruit would evaluate toapple ifis_ios is true. Otherwise, ifis_in_20_percent istrue,fruit would evaluate tobanana, and ifis_ios andis_in_20_percent are both false,fruit would evaluate topear. If no default value were specified, andis_ios andis_in_20_percent were both false, no value forfruit would be returned from the Remote Config server to the client.

Once a project's Remote Config template has been published via a successfulprojects.updateRemoteConfig call, clients can fetch these parameter values and display them to users.

JSON representation
{"conditions":[{object (RemoteConfigCondition)}],"parameters":{string:{object (RemoteConfigParameter)},...},"version":{object (Version)},"parameterGroups":{string:{object (RemoteConfigParameterGroup)},...}}
Fields
conditions[]

object (RemoteConfigCondition)

A list of conditions in descending order by priority.

The values of thegoogle.firebase.remoteconfig.v1.RemoteConfigCondition.name entries must be unique.

parameters

map (key: string, value: object (RemoteConfigParameter))

Map of parameter keys to their optional default values and optional conditional values.

An object containing a list of"key": value pairs. Example:{ "name": "wrench", "mass": "1.3kg", "count": "3" }.

version

object (Version)

Output only, except for the versiondescription. Metadata associated with a particular version of a template. A version's description field may be specified inprojects.updateRemoteConfig calls.

parameterGroups

map (key: string, value: object (RemoteConfigParameterGroup))

Map of parameter group names to their descriptions and grouped parameters. A group's name is mutable but must be unique among groups in the config. The name is limited to 256 characters and intended to be human-readable. Any Unicode characters are allowed.

Groups have a list of parameters which allows users of the API to group parameters that are associated with the same feature or theme together for easy organizational access.

For example, a parameter group with the name "Search V2" may have thedescription "New mobile search view" and contain parameters for the new search's layout and font.

An object containing a list of"key": value pairs. Example:{ "name": "wrench", "mass": "1.3kg", "count": "3" }.

RemoteConfigCondition

A condition targeting a specific group of users. A list of these conditions make up part of a RemoteConfig object.

JSON representation
{"name":string,"expression":string,"tagColor":enum (ConditionDisplayColor)}
Fields
name

string

Required. A non-empty and unique name of this condition.

expression

string

Required. The logic of this condition.

See the documentation regardingCondition Expressions for the expected syntax of this field.

tagColor

enum (ConditionDisplayColor)

Optional. The color associated with this condition for display purposes in the Firebase Console. Not specifying this value or having "CONDITION_DISPLAY_COLOR_UNSPECIFIED" results in the Console picking an arbitrary color to associate with the condition.

ConditionDisplayColor

  • List of colors that are associated with Conditions for display purposes.
Enums
CONDITION_DISPLAY_COLOR_UNSPECIFIEDCatch-all for unrecognized enum values.
BLUEBlue
BROWNBrown
CYANCyan
DEEP_ORANGEaka "Red Orange"
GREENGreen
INDIGOIndigo
LIMELime
ORANGEOrange
PINKPink
PURPLEPurple
TEALTeal

RemoteConfigParameter

A parameter value associated with a parameter key ingoogle.firebase.remoteconfig.v1.RemoteConfig.parameters.

At minimum, adefaultValue or aconditionalValues entry should be present for the parameter to have any effect.

JSON representation
{"defaultValue":{object (RemoteConfigParameterValue)},"conditionalValues":{string:{object (RemoteConfigParameterValue)},...},"description":string,"valueType":enum (ParameterValueType)}
Fields
defaultValue

object (RemoteConfigParameterValue)

Optional - value to set the parameter to, when none of the named conditions evaluate totrue.

conditionalValues

map (key: string, value: object (RemoteConfigParameterValue))

Optional - a (condition name, value) map. The condition_name of the highest priority (the one listed first in the RemoteConfig's conditions list) determines the value of this parameter.

An object containing a list of"key": value pairs. Example:{ "name": "wrench", "mass": "1.3kg", "count": "3" }.

description

string

Optional. A description for this Parameter. Its length must be less than or equal to 256 characters . A description may contain any Unicode characters.

valueType

enum (ParameterValueType)

The data type for all values of this parameter in the current version of the template. Defaults toParameterValueType.STRING if unspecified.

RemoteConfigParameterValue

A RemoteConfigParameterValue resource contains the value that a parameter may have.

JSON representation
{// Union fieldvalue_option can be only one of the following:"value":string,"useInAppDefault":boolean,"personalizationValue":{object (PersonalizationValue)},"experimentValue":{object (ExperimentValue)},"rolloutValue":{object (RolloutValue)}// End of list of possible types for union fieldvalue_option.}
Fields
Union fieldvalue_option. A RemoteConfigParameterValue consists of either a string (value) or a boolean (use_in_app_default, set to true if applicable).value_option can be only one of the following:
value

string

The string value that the parameter is set to.

useInAppDefault

boolean

If true, the parameter is omitted from the parameter values returned to a client.

personalizationValue

object (PersonalizationValue)

A dynamic, user-specific value computed when config is fetched.

experimentValue

object (ExperimentValue)

A dynamic value managed by the Firebase ABT Experiment service.

rolloutValue

object (RolloutValue)

A dynamic Rollout value managed by the Firebase ABT Experiment service.

PersonalizationValue

Contains the necessary information to fetch a personalized value.

JSON representation
{"personalizationId":string}
Fields
personalizationId

string

Identifier that represents a personalization definition. This definition is used to resolve the value at config fetch time. This system-generated value should not be modified.

ExperimentValue

Information related to a parameter value managed by Firebase ABT.

JSON representation
{"experimentId":string,"variantValue":[{object (ExperimentVariantValue)}]}
Fields
experimentId

string

The identifier that associates a parameter value to an Experiment in Firebase ABT.

variantValue[]

object (ExperimentVariantValue)

A repeated of variants associated with the Experiment.

ExperimentVariantValue

Information about the variant for the Experiment.

JSON representation
{"variantId":string,// Union fieldvalue_option can be only one of the following:"value":string,"noChange":boolean// End of list of possible types for union fieldvalue_option.}
Fields
variantId

string

The variant identifier for the Experiment.

Union fieldvalue_option. The value to assign. The UI allows developers to toggle between no change and an actual value.value_option can be only one of the following:
value

string

The user-specified value for this variant. Can be empty string.

noChange

boolean

If this boolean is set, then fallback to the next parameter in the Template condition chain

RolloutValue

Information related to a Rollout.

JSON representation
{"rolloutId":string,"value":string,"percent":number}
Fields
rolloutId

string

The identifier that associates a parameter value to a Rollout experiment.

value

string

The user-specified value to be rolled out.

percent

number

The percentage of users that will receive the rollout value.

ParameterValueType

Accepted data types for parameter values.

Enums
PARAMETER_VALUE_TYPE_UNSPECIFIEDCatch-all for unrecognized enum values.
STRINGRepresents String values.
BOOLEANRepresents Boolean values ("true" or "false").
NUMBERRepresents both positive and negative integer and float values.
JSONRepresents JSON values.

RemoteConfigParameterGroup

A named group of parameters. Grouping parameters is only for management purposes and does not affect client-side fetching of parameter values.

JSON representation
{"description":string,"parameters":{string:{object (RemoteConfigParameter)},...}}
Fields
description

string

Optional. A description for the group. Its length must be less than or equal to 256 characters. A description may contain any Unicode characters.

parameters

map (key: string, value: object (RemoteConfigParameter))

Map of parameter keys to their optional default values and optional conditional values for parameters that belong to this group. A parameter only appears once per RemoteConfig: an ungrouped parameter appears at the top level; a parameter organized within a group appears within its group's map of parameters.

An object containing a list of"key": value pairs. Example:{ "name": "wrench", "mass": "1.3kg", "count": "3" }.

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-10-03 UTC.