forceRefresh method
Force an immediate refresh (bypassing rate limits) Use sparingly due to Firebase's 5 fetches/hour limit
Implementation
Future<void> forceRefresh() async {
if (!kIsWeb) {
logd('🚫 WebRemoteConfigRefreshService: Force refresh only available on web');
return;
}
try {
logd('🔥 WebRemoteConfigRefreshService: Force refresh requested...');
final instance = FirebaseRemoteConfig.instance;
// Temporarily set zero fetch interval
await instance.setConfigSettings(
RemoteConfigSettings(
fetchTimeout: const Duration(seconds: 10),
minimumFetchInterval: Duration.zero,
),
);
// Log before
final beforeValue = instance.getString('minimumAppVersionRecommendedApple');
// Force fetch
final result = await instance.fetchAndActivate();
// Log after
final afterValue = instance.getString('minimumAppVersionRecommendedApple');
// Reset fetch interval
await instance.setConfigSettings(
RemoteConfigSettings(
fetchTimeout: const Duration(seconds: 10),
minimumFetchInterval: kDebugMode ? const Duration(seconds: 10) : const Duration(hours: 1),
),
);
if (result) {
logd('✅ WebRemoteConfigRefreshService: Force refresh successful');
if (beforeValue != afterValue) {
logd('🎉 Values updated! Before: "$beforeValue" -> After: "$afterValue"');
_notifyConfigUpdated();
}
} else {
logd('⚠️ WebRemoteConfigRefreshService: Force refresh returned false');
}
} catch (e) {
loge('❌ WebRemoteConfigRefreshService: Force refresh failed: $e');
}
}