getValue method

dynamic getValue(
  1. String key, {
  2. required dynamic defaultValue,
})

Get a value from RC (with fallback to cache)

Implementation

dynamic getValue(String key, {required dynamic defaultValue}) {
  try {
    /// If RC not ready → use cache
    if (!_initialized) {
      final cached = getCachedValue(key, defaultValue: defaultValue);
      if (cached != null) return cached;
      return defaultValue;
    }

    if (defaultValue is String) {
      final s = _remoteConfig.getString(key);
      return s.isNotEmpty ? s : defaultValue;
    } else if (defaultValue is bool) {
      final s = _remoteConfig.getString(key);
      if (s.isNotEmpty) {
        return s.toLowerCase() == "true";
      }
      return _remoteConfig.getBool(key);
    } else if (defaultValue is int) {
      final s = _remoteConfig.getString(key);
      if (s.isNotEmpty) {
        return int.tryParse(s) ?? defaultValue;
      }
      return _remoteConfig.getInt(key);
    } else if (defaultValue is double) {
      final s = _remoteConfig.getString(key);
      if (s.isNotEmpty) {
        return double.tryParse(s) ?? defaultValue;
      }
      return _remoteConfig.getDouble(key);
    } else {
      return defaultValue;
    }
  } catch (e) {
    debugPrint("RC getValue error: $e");
    return defaultValue;
  }
}