forceRefreshRemoteConfigWeb function
Force refresh Remote Config for web with detailed logging
Implementation
Future<void> forceRefreshRemoteConfigWeb() async {
if (!kIsWeb) {
logd('â This function is only for web platform');
return;
}
logd('đĨ === FORCE REFRESH FOR WEB ===');
try {
final instance = FirebaseRemoteConfig.instance;
// Log current state
logd('đ Current fetch status: ${instance.lastFetchStatus}');
logd('đ
Current fetch time: ${instance.lastFetchTime}');
// Log values before
final beforeValue = instance.getString('minimumAppVersionRecommendedApple');
logd('đą BEFORE force refresh: "$beforeValue"');
// Set minimal fetch interval for immediate fetch
await instance.setConfigSettings(
RemoteConfigSettings(
fetchTimeout: const Duration(seconds: 10),
minimumFetchInterval: Duration.zero, // Allow immediate fetch
),
);
// Force fetch
logd('đ Executing force fetchAndActivate...');
final result = await instance.fetchAndActivate();
logd('â
Force fetch result: $result');
// Log values after
final afterValue = instance.getString('minimumAppVersionRecommendedApple');
logd('đą AFTER force refresh: "$afterValue"');
// Reset fetch interval
await instance.setConfigSettings(
RemoteConfigSettings(
fetchTimeout: const Duration(seconds: 10),
minimumFetchInterval: kDebugMode ? const Duration(seconds: 10) : const Duration(hours: 1),
),
);
// Log final state
logd('đ Final fetch status: ${instance.lastFetchStatus}');
logd('đ
Final fetch time: ${instance.lastFetchTime}');
if (beforeValue != afterValue) {
logd('đ SUCCESS: Remote Config values updated!');
} else {
logd('âšī¸ Values unchanged (may be up to date or no server values set)');
}
} catch (e) {
loge('â Force refresh failed: $e');
}
}