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');
}
}