Entry point for the Firebase Remote Config (FRC) API.
Callers should first get the singleton object using
getInstance()
, and then call operations on that singleton object. The singleton
contains the complete set of FRC parameter values available to your app. The singleton also
stores values fetched from the FRC Server until they are made available for use with a call
to activate()
.
Constant Summary
boolean | DEFAULT_VALUE_FOR_BOOLEAN | The static default boolean value for any given key. |
double | DEFAULT_VALUE_FOR_DOUBLE | The static default double value for any given key. |
long | DEFAULT_VALUE_FOR_LONG | The static default long value for any given key. |
String | DEFAULT_VALUE_FOR_STRING | The static default string value for any given key. |
int | LAST_FETCH_STATUS_FAILURE | Indicates that the most recent attempt to fetch parameter values from the Firebase Remote Config Server has failed. |
int | LAST_FETCH_STATUS_NO_FETCH_YET | Indicates that the FirebaseRemoteConfig singleton object has not yet attempted to fetch parameter values from the Firebase Remote Config Server. |
int | LAST_FETCH_STATUS_SUCCESS | Indicates that the most recent fetch of parameter values from the Firebase Remote Config Server was completed successfully. |
int | LAST_FETCH_STATUS_THROTTLED | Indicates that the most recent attempt to fetch parameter values from the Firebase Remote Config Server was throttled. |
int | VALUE_SOURCE_DEFAULT | Indicates that the value returned was retrieved from the defaults set by the client. |
int | VALUE_SOURCE_REMOTE | Indicates that the value returned was retrieved from the Firebase Remote Config Server. |
int | VALUE_SOURCE_STATIC | Indicates that the value returned is the static default value. |
Field Summary
public static final byte[] | DEFAULT_VALUE_FOR_BYTE_ARRAY | The static default byte array value for any given key. |
Public Method Summary
Task<Boolean> |
activate()
Asynchronously activates the most recently fetched configs, so that the fetched
key value pairs take effect.
|
boolean |
activateFetched()
This method was deprecated. Use
activate() instead.
|
Task<FirebaseRemoteConfigInfo> |
ensureInitialized()
Returns a
Task
representing the initialization status of this Firebase Remote Config instance.
|
Task<Void> |
fetch(long minimumFetchIntervalInSeconds)
Starts fetching configs, adhering to the specified minimum fetch interval.
|
Task<Void> |
fetch()
Starts fetching configs, adhering to the default minimum fetch interval.
|
Task<Boolean> |
fetchAndActivate()
Asynchronously fetches and then activates the fetched configs.
|
Map<String, FirebaseRemoteConfigValue> | |
boolean | |
byte[] | |
double | |
FirebaseRemoteConfigInfo |
getInfo()
Returns the state of this
FirebaseRemoteConfig instance as a
FirebaseRemoteConfigInfo .
|
static FirebaseRemoteConfig |
getInstance()
Returns a singleton instance of Firebase Remote Config.
|
static FirebaseRemoteConfig |
getInstance(FirebaseApp app)
Returns an instance of Firebase Remote Config for the given
FirebaseApp .
|
Set<String> |
getKeysByPrefix(String prefix)
Returns a
Set of all
Firebase Remote Config parameter keys with the given prefix.
|
long | |
String | |
FirebaseRemoteConfigValue | |
Task<Void> |
reset()
Deletes all activated, fetched and defaults configs and resets all Firebase
Remote Config settings.
|
void |
setConfigSettings(FirebaseRemoteConfigSettings
settings)
This method was deprecated. Use
setConfigSettingsAsync(FirebaseRemoteConfigSettings) instead.
|
Task<Void> |
setConfigSettingsAsync(FirebaseRemoteConfigSettings
settings)
Asynchronously changes the settings for this
FirebaseRemoteConfig instance.
|
void |
setDefaults(int resourceId)
This method was deprecated. Use
setDefaultsAsync(int) instead.
|
void |
setDefaults(Map<String, Object>
defaults)
This method was deprecated. Use
setDefaultsAsync(int) instead.
|
Task<Void> |
setDefaultsAsync(int resourceId)
Sets default configs using an XML resource.
|
Task<Void> |
setDefaultsAsync(Map<String, Object>
defaults)
Asynchronously sets default configs using the given
Map .
|
Inherited Method Summary
Constants
public static final boolean DEFAULT_VALUE_FOR_BOOLEAN
The static default boolean value for any given key.
public static final double DEFAULT_VALUE_FOR_DOUBLE
The static default double value for any given key.
public static final long DEFAULT_VALUE_FOR_LONG
The static default long value for any given key.
public static final String DEFAULT_VALUE_FOR_STRING
The static default string value for any given key.
public static final int LAST_FETCH_STATUS_FAILURE
Indicates that the most recent attempt to fetch parameter values from the Firebase Remote Config Server has failed.
public static final int LAST_FETCH_STATUS_NO_FETCH_YET
Indicates that the FirebaseRemoteConfig singleton object has not yet attempted to fetch parameter values from the Firebase Remote Config Server.
public static final int LAST_FETCH_STATUS_SUCCESS
Indicates that the most recent fetch of parameter values from the Firebase Remote Config Server was completed successfully.
public static final int LAST_FETCH_STATUS_THROTTLED
Indicates that the most recent attempt to fetch parameter values from the Firebase Remote Config Server was throttled.
public static final int VALUE_SOURCE_DEFAULT
Indicates that the value returned was retrieved from the defaults set by the client.
public static final int VALUE_SOURCE_REMOTE
Indicates that the value returned was retrieved from the Firebase Remote Config Server.
public static final int VALUE_SOURCE_STATIC
Indicates that the value returned is the static default value.
Fields
public static final byte[] DEFAULT_VALUE_FOR_BYTE_ARRAY
The static default byte array value for any given key.
Public Methods
public boolean activateFetched ()
This method was deprecated.
Use
activate()
instead.
Activates the most recently fetched configs, so that the fetched key value pairs take effect.
Returns
- True if the current call activated the fetched configs; false if the fetched configs were already activated by a previous call.
public Task<FirebaseRemoteConfigInfo> ensureInitialized ()
Returns a Task
representing the initialization status of this Firebase Remote Config instance.
public Task<Void> fetch (long minimumFetchIntervalInSeconds)
Starts fetching configs, adhering to the specified minimum fetch interval.
The fetched configs only take effect after the next
activate()
call.
Depending on the time elapsed since the last fetch from the Firebase Remote Config backend, configs are either served from local storage, or fetched from the backend.
To identify the current app instance, the fetch request creates a Firebase Instance
ID token, which periodically sends data to the Firebase backend. To stop the periodic
sync, call
deleteInstanceId()
. To create a new token and resume the periodic sync, call
fetchConfig
again.
Parameters
minimumFetchIntervalInSeconds | If configs in the local storage were fetched more than this many seconds ago, configs are served from the backend instead of local storage. |
---|
Returns
Task
representing thefetch
call.
public Task<Void> fetch ()
Starts fetching configs, adhering to the default minimum fetch interval.
The fetched configs only take effect after the next
activate()
call.
Depending on the time elapsed since the last fetch from the Firebase Remote Config
backend, configs are either served from local storage, or fetched from the backend. The
default minimum fetch interval can be set with
FirebaseRemoteConfigSettings.Builder#setMinimumFetchIntervalInSeconds(long)
;
the static default is 12 hours.
To identify the current app instance, the fetch request creates a Firebase Instance
ID token, which periodically sends data to the Firebase backend. To stop the periodic
sync, call
deleteInstanceId()
. To create a new token and resume the periodic sync, call
fetchConfig
again.
Returns
Task
representing thefetch
call.
public Task<Boolean> fetchAndActivate ()
Asynchronously fetches and then activates the fetched configs.
If the time elapsed since the last fetch from the Firebase Remote Config backend is more than the default minimum fetch interval, configs are fetched from the backend.
After the fetch is complete, the configs are activated so that the fetched key value pairs take effect.
public Map<String, FirebaseRemoteConfigValue> getAll ()
Returns a Map
of Firebase
Remote Config key value pairs.
Evaluates the values of the parameters in the following order:
- The activated value, if the last successful
activate()
contained the key. - The default value, if the key was set with
setDefaultsAsync(int)
.
public boolean getBoolean (String key)
Returns the parameter value for the given key as a boolean
.
Evaluates the value of the parameter in the following order:
- The activated value, if the last successful
activate()
contained the key, and the value can be converted into aboolean
. - The default value, if the key was set with
setDefaultsAsync(int)
, and the value can be converted into aboolean
. DEFAULT_VALUE_FOR_BOOLEAN
.
"1", "true", "t", "yes", "y", and "on" are strings that are interpreted (case
insensitive) as true
, and "0", "false", "f", "no", "n", "off", and empty
string are interpreted (case insensitive) as false
.
Parameters
key | A Firebase Remote Config parameter key with a boolean parameter
value. |
---|
Returns
boolean
representing the value of the Firebase Remote Config parameter with the given key.
public byte[] getByteArray (String key)
Returns the parameter value for the given key as a byte[]
.
Evaluates the value of the parameter in the following order:
- The activated value, if the last successful
activate()
contained the key. - The default value, if the key was set with
setDefaultsAsync(int)
. DEFAULT_VALUE_FOR_BYTE_ARRAY
.
Parameters
key | A Firebase Remote Config parameter key. |
---|
Returns
byte[]
representing the value of the Firebase Remote Config parameter with the given key.
public double getDouble (String key)
Returns the parameter value for the given key as a double
.
Evaluates the value of the parameter in the following order:
- The activated value, if the last successful
activate()
contained the key, and the value can be converted into adouble
. - The default value, if the key was set with
setDefaultsAsync(int)
, and the value can be converted into adouble
. DEFAULT_VALUE_FOR_DOUBLE
.
Parameters
key | A Firebase Remote Config parameter key with a double parameter
value. |
---|
Returns
double
representing the value of the Firebase Remote Config parameter with the given key.
public FirebaseRemoteConfigInfo getInfo ()
Returns the state of this FirebaseRemoteConfig
instance as a FirebaseRemoteConfigInfo
.
public static FirebaseRemoteConfig getInstance ()
Returns a singleton instance of Firebase Remote Config.
FirebaseRemoteConfig
uses the default FirebaseApp
, so if
no FirebaseApp
has
been initialized yet, this method throws an IllegalStateException
.
To identify the current app instance, the fetch request creates a Firebase Instance
ID token, which periodically sends data to the Firebase backend. To stop the periodic
sync, call
deleteInstanceId()
. To create a new token and resume the periodic sync, call
fetchConfig
again.
Returns
- A singleton instance of
FirebaseRemoteConfig
for the defaultFirebaseApp
.
public static FirebaseRemoteConfig getInstance (FirebaseApp app)
Returns an instance of Firebase Remote Config for the given FirebaseApp
.
public Set<String> getKeysByPrefix (String prefix)
public long getLong (String key)
Returns the parameter value for the given key as a long
.
Evaluates the value of the parameter in the following order:
- The activated value, if the last successful
activate()
contained the key, and the value can be converted into along
. - The default value, if the key was set with
setDefaultsAsync(int)
, and the value can be converted into along
. DEFAULT_VALUE_FOR_LONG
.
Parameters
key | A Firebase Remote Config parameter key with a long parameter
value. |
---|
Returns
long
representing the value of the Firebase Remote Config parameter with the given key.
public String getString (String key)
Returns the parameter value for the given key as a String
.
Evaluates the value of the parameter in the following order:
- The activated value, if the last successful
activate()
contained the key. - The default value, if the key was set with
setDefaultsAsync(int)
. DEFAULT_VALUE_FOR_STRING
.
Parameters
key | A Firebase Remote Config parameter key. |
---|
Returns
String
representing the value of the Firebase Remote Config parameter with the given key.
public FirebaseRemoteConfigValue getValue (String key)
Returns the parameter value for the given key as a FirebaseRemoteConfigValue
.
Evaluates the value of the parameter in the following order:
- The activated value, if the last successful
activate()
contained the key. - The default value, if the key was set with
setDefaultsAsync(int)
. - A
FirebaseRemoteConfigValue
that returns the static value for each type.
Parameters
key | A Firebase Remote Config parameter key. |
---|
Returns
FirebaseRemoteConfigValue
representing the value of the Firebase Remote Config parameter with the given key.
public Task<Void> reset ()
Deletes all activated, fetched and defaults configs and resets all Firebase Remote Config settings.
Returns
Task
representing theclear
call.
public void setConfigSettings (FirebaseRemoteConfigSettings settings)
This method was deprecated.
Use
setConfigSettingsAsync(FirebaseRemoteConfigSettings)
instead.
Changes the settings for this FirebaseRemoteConfig
instance.
Parameters
settings | The new settings to be applied. |
---|
public Task<Void> setConfigSettingsAsync (FirebaseRemoteConfigSettings settings)
Asynchronously changes the settings for this FirebaseRemoteConfig
instance.
Parameters
settings | The new settings to be applied. |
---|
public void setDefaults (int resourceId)
This method was deprecated.
Use
setDefaultsAsync(int)
instead.
Sets default configs using an XML resource.
Parameters
resourceId | Id for the XML resource, which should be in your application's
res/xml folder. |
---|
public void setDefaults (Map<String, Object> defaults)
This method was deprecated.
Use
setDefaultsAsync(int)
instead.
Sets default configs using the given Map
.
The values in defaults
must be one of the following types:
Long
String
Double
byte[]
Boolean
Parameters
defaults | Map of key value pairs representing Firebase Remote Config parameter keys and values. |
---|
public Task<Void> setDefaultsAsync (int resourceId)
Sets default configs using an XML resource.
Parameters
resourceId | Id for the XML resource, which should be in your application's
res/xml folder. |
---|