앱을 업데이트하지 않고 앱의 동작과 UI를 바꿀 수 있는 Firebase 서비스.
설정값을 Firebase 콘솔에서 수정하면 앱이 다음 실행 시 새 값을 받아옴.
1. Firebase 콘솔에서 파라미터(키-값) 설정
2. 앱 실행 시 Remote Config 서버에서 값 fetch
3. activate() 호출로 앱에 적용
4. 앱에서 getValue()로 값 읽어서 사용
fetch한 값은 바로 적용되지 않음. activate() 해야 실제로 반영됨.
Remote Config에서 관리하는 키-값 쌍.
키: show_banner
값: true
서버에서 값을 못 받아왔을 때 앱이 사용하는 fallback 값.
반드시 앱 코드 안에 설정해두는 게 좋음.
fetch() — 서버에서 최신 값을 가져옴 (캐시에 저장)activate() — 캐시에 있는 값을 앱에 실제 반영fetchAndActivate() — 두 작업을 한 번에// 1. 패키지 추가
// pubspec.yaml
// firebase_remote_config: ^x.x.x
// 2. 초기화 및 기본값 설정
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setDefaults({
'show_banner': false,
'banner_text': '기본 배너 문구',
});
// 3. 서버에서 값 가져와서 적용
await remoteConfig.fetchAndActivate();
// 4. 값 읽기
final showBanner = remoteConfig.getBool('show_banner');
final bannerText = remoteConfig.getString('banner_text');
기본 캐시 만료 시간은 12시간.
개발 중에는 아래처럼 최소화해서 테스트.
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: Duration(seconds: 10),
minimumFetchInterval: Duration.zero, // 개발용, 배포 시엔 제거
));
앱 심사 없이 동작을 바꿀 수 있다는 게 핵심.
배너, 공지, 기능 플래그처럼 자주 바뀌는 값은 하드코딩 대신 Remote Config로 빼두는 습관 들이기.