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