testRemoteConfigValues function

Future<void> testRemoteConfigValues()

Test Remote Config functionality and log the results This is useful for debugging Remote Config issues

Implementation

Future<void> testRemoteConfigValues() async {
  try {
    logd('๐Ÿงช Testing Remote Config values...');

    // Test version parameters
    final requiredApple = FirebaseRemoteConfig.instance.getString('minimumAppVersionRequiredApple');
    final recommendedApple =
        FirebaseRemoteConfig.instance.getString('minimumAppVersionRecommendedApple');
    logv('๐Ÿ“ฑ Version Required Apple: "$requiredApple"');
    logv('๐Ÿ“ฑ Version Recommended Apple: "$recommendedApple"');

    // Test web-specific values
    if (kIsWeb) {
      final requiredWeb = FirebaseRemoteConfig.instance.getString('minimumAppVersionRequiredWeb');
      final recommendedWeb =
          FirebaseRemoteConfig.instance.getString('minimumAppVersionRecommendedWeb');
      logv('๐ŸŒ Version Required Web: "$requiredWeb"');
      logv('๐ŸŒ Version Recommended Web: "$recommendedWeb"');

      // Check value sources on web
      final webRequiredSource =
          FirebaseRemoteConfig.instance.getValue('minimumAppVersionRequiredWeb').source;
      final webRecommendedSource =
          FirebaseRemoteConfig.instance.getValue('minimumAppVersionRecommendedWeb').source;
      logv('๐Ÿ” Web Required source: $webRequiredSource');
      logv('๐Ÿ” Web Recommended source: $webRecommendedSource');
    }

    // Test feature flags
    final calsyncGoogle = FirebaseRemoteConfig.instance.getBool('calsyncEnableGoogle');
    final communityTutorial = FirebaseRemoteConfig.instance.getBool('communityTutorialEnabled');
    logv('๐Ÿ”ง Calsync Google Enabled: $calsyncGoogle');
    logv('๐Ÿ”ง Community Tutorial Enabled: $communityTutorial');

    // Test string parameters
    final stripeKey = FirebaseRemoteConfig.instance.getString('stripePublishableKey');
    final vimeoId = FirebaseRemoteConfig.instance.getString('subscribeVideoVimeoId');
    logv('๐Ÿ’ณ Stripe Key: "${stripeKey.isNotEmpty ? '${stripeKey.substring(0, 20)}...' : 'EMPTY'}"');
    logv('๐ŸŽฅ Vimeo ID: "$vimeoId"');

    // Test numeric parameters
    final maxSelections = FirebaseRemoteConfig.instance.getInt('psmChoiceSelectionsMax');
    final refreshInterval =
        FirebaseRemoteConfig.instance.getInt('userPrivateRefreshIntervalSeconds');
    logv('๐Ÿ”ข PSM Max Selections: $maxSelections');
    logv('๐Ÿ”ข Refresh Interval: $refreshInterval');

    // Check fetch status
    final fetchStatus = FirebaseRemoteConfig.instance.lastFetchStatus;
    final fetchTime = FirebaseRemoteConfig.instance.lastFetchTime;
    logv('๐Ÿ“Š Last fetch status: $fetchStatus');
    logv('๐Ÿ“… Last fetch time: $fetchTime');

    // Check value source (will help identify if values come from defaults, cache, or remote)
    final valueSource =
        FirebaseRemoteConfig.instance.getValue('minimumAppVersionRecommendedApple').source;
    logd('๐Ÿ” Value source for minimumAppVersionRecommendedApple: $valueSource');

    logd('โœ… Remote Config test completed');
  } catch (e) {
    loge('โŒ Error during Remote Config test: $e');
  }
}