forceRefreshRemoteConfigWeb function

Future<void> forceRefreshRemoteConfigWeb()

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