webForceInitialFetch function

Future<void> webForceInitialFetch()

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