webForceInitialFetch function
Force a fetch on web platforms for initial startup Web platforms need this explicit fetch since real-time listeners don't work
Implementation
Future<void> webForceInitialFetch() async {
if (!kIsWeb) {
return;
}
logv('π Web platform: Forcing initial Remote Config fetch...');
try {
// Set minimal fetch interval for immediate fetch
await FirebaseRemoteConfig.instance.setConfigSettings(
RemoteConfigSettings(
fetchTimeout: const Duration(seconds: 10),
minimumFetchInterval: Duration.zero,
),
);
// Force fetch and activate
final result = await FirebaseRemoteConfig.instance.fetchAndActivate();
logv('π Web initial fetch result: $result');
// Check value source
final testValue = FirebaseRemoteConfig.instance.getValue('minimumAppVersionRecommendedApple');
logv('π Web fetch value source: ${testValue.source}');
logv('π Web fetch value: "${testValue.asString()}"');
// Reset fetch interval
await FirebaseRemoteConfig.instance.setConfigSettings(
RemoteConfigSettings(
fetchTimeout: const Duration(seconds: 10),
minimumFetchInterval: kDebugMode ? const Duration(seconds: 10) : const Duration(hours: 1),
),
);
if (testValue.source == ValueSource.valueRemote) {
logd('β
Web platform successfully fetched Remote Config values from server');
} else {
logv(
'β οΈ Web platform using default values - Remote Config may not be set up in Firebase Console');
}
} catch (e) {
logd('β οΈ Web platform initial fetch failed: $e');
logv('βΉοΈ Continuing with default values');
}
}