I'm using Firebase Remote Config to fetch data when app first open for the first time. But problem is I cannot fetch data on first start of the app. onComplete()
method triggers but returns no value. If I close app and run again it returns value from Remote Config.
Tried to call fetch() in onCreate()
, onStart()
, onResume()
, gave it a second delay with postDelay()
still the same, initial fetch is always empty. I know, Remote Config has setDefaults()
method to store defaults before it is getting fetched, but setting defaults inside app is not what I want.
It is the way how Remote Config works or am I doing something wrong? The only workaround I found is to add fetch()
inside onResume()
and call onResume() again inside onCreate()
. It results calling onResume() twice. First time by Android system and second time by code.
It there any other way to force Remote Config fetch data on first time run?
UPDATE
Inside onComplete()
first I must call firebaseRemoteConfig.activateFetched();
before getting new values from it.
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder().build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings)
.addOnCompleteListener(task -> mFirebaseRemoteConfig.fetchAndActivate()
.addOnCompleteListener(activity, task1 {
// now cache is updated you can fetch values
String value = mFirebaseRemoteConfig.getString("key");
}));
Start getting the values after config settings are completed
just do that at the app launch, and get values directly anywhere else (eg:
mFirebaseRemoteConfig.getString("key");
)
check few points:
Once new variable is created in firebase dashboard, publish it
fetch with cache time set to 0
FirebaseRemoteConfig.getInstance().fetch(0).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With