I have a class to fetch Firebase remote config data where two values in my remote config. But unfortunately, I can't able to fetch data.
public class FirebaseConfig {
FirebaseRemoteConfig mFirebaseRemoteConfig;
FirebaseRemoteConfigSettings configSettings;
long cacheExpiration = 5;
String vehicle_latitude = "";
String vehicle_longitude = "";
public FirebaseConfig() {
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
configSettings = new FirebaseRemoteConfigSettings.Builder()
.build();
mFirebaseRemoteConfig.setConfigSettings(configSettings);
mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);
}
public String fetchLatitude(Context context) {
mFirebaseRemoteConfig.fetch(getCacheExpiration())
.addOnCompleteListener((Activity) context, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
// If is successful, activated fetched
if (task.isSuccessful()) {
mFirebaseRemoteConfig.activateFetched();
} else {
Log.d("", "");
}
vehicle_latitude = mFirebaseRemoteConfig.getString("tracker_vehicle_latitude");
}
});
return vehicle_latitude;
}
public String fetchLongitude(Context context) {
mFirebaseRemoteConfig.fetch(getCacheExpiration())
.addOnCompleteListener((Activity) context, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
// If is successful, activated fetched
if (task.isSuccessful()) {
mFirebaseRemoteConfig.activateFetched();
} else {
Log.d("", "");
}
vehicle_longitude = mFirebaseRemoteConfig.getString("tracker_vehicle_longitude");
}
});
return vehicle_longitude;
}
public long getCacheExpiration() {
// If is developer mode, cache expiration set to 0, in order to test
if (mFirebaseRemoteConfig.getInfo().getConfigSettings().isDeveloperModeEnabled()) {
cacheExpiration = 0;
}
return cacheExpiration;
}}
When I call this from another class, I am unable to fetch data from firebase.
In MainActivity
FirebaseConfig fc = new FirebaseConfig();
vehicle_latitude = fc.fetchLatitude(this);
vehicle_longitude = fc.fetchLongitude(this);
Any suggestions will be appreciated.
Thank you!
Try fetching this way
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(10)
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
mFirebaseRemoteConfig.fetchAndActivate();
vehicle_latitude = mFirebaseRemoteConfig.getString("tracker_vehicle_latitude");
vehicle_longitude = mFirebaseRemoteConfig.getString("tracker_vehicle_longitude");
For more information on how to set-up, check this