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

    // Web-specific status
    if (kIsWeb) {
      final refreshServiceStatus = WebRemoteConfigRefreshService.instance.getStatus();
      logv('🌐 Web refresh service status: $refreshServiceStatus');
    }

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