setFlag method
- String key,
- dynamic value
Persistently overrides a feature flag value.
Passing null as the value will remove the override.
Implementation
Future<void> setFlag(String key, dynamic value) async {
final prefKey = 'ff_$key';
if (value == null) {
log(
'Feature flag "$key" reset to default',
name: 'FeatureFlagRepository',
);
firebaseService.log('Feature flag "$key" reset to default');
await _prefs.remove(prefKey);
return;
}
log(
'Feature flag "$key" changed to: $value',
name: 'FeatureFlagRepository',
);
firebaseService.log('Feature flag "$key" changed to: $value');
await (switch (value) {
bool v => _prefs.setBool(prefKey, v),
int v => _prefs.setInt(prefKey, v),
double v => _prefs.setDouble(prefKey, v),
String v => _prefs.setString(prefKey, v),
_ => throw ArgumentError('Unsupported flag type: ${value.runtimeType}'),
});
_flagsCache = null;
}