| 플랫폼 선택: | iOS+ Android 웹 Flutter Unity C++ |
Firebase Remote Config으로 클라우드에서 앱의 파라미터를 정의하고 값을 업데이트하면 앱 업데이트를 배포하지 않고도 앱의 모양과 동작을 수정할 수 있습니다.
Remote Config 라이브러리를 사용하여 인앱 파라미터 기본값을 저장하고, 업데이트된 파라미터 값을 Remote Config 백엔드에서 가져오고, 가져온 값을 앱에 적용할 시점을 제어합니다. 자세한 내용은 원격 구성 로딩 전략을 참조하세요.
1단계: 앱에 Firebase 추가
Remote Config을 사용하려면 먼저 다음 작업을 해야 합니다.
C++ 프로젝트를 등록하고 Firebase를 사용하도록 구성합니다.
C++ 프로젝트에서 현재 Firebase를 사용하고 있다면 이미 등록되어 Firebase용으로 구성된 상태입니다.
C++ 프로젝트에 Firebase C++ SDK를 추가합니다.
C++ 프로젝트에 Firebase를 추가할 때 Firebase Console 및 열려 있는 C++ 프로젝트 모두에서 작업을 수행해야 합니다. 예를 들어 Console에서 Firebase 구성 파일을 다운로드한 후 이 파일을 C++ 프로젝트로 옮기는 작업이 필요합니다.
2단계: 앱에 Remote Config 추가
Android
앱에 Firebase를 추가한 후:
Firebase 앱을 만들고 JNI 환경 및 액티비티를 전달합니다.
app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);
다음과 같이 Remote Config 라이브러리를 초기화합니다.
::firebase::remote_config::Initialize(app);
iOS+
앱에 Firebase를 추가한 후:
Firebase 앱을 만듭니다.
app = ::firebase::App::Create(::firebase::AppOptions());
다음과 같이 Remote Config 라이브러리를 초기화합니다.
::firebase::remote_config::Initialize(app);
3단계: 인앱 매개변수 기본값 설정
Remote Config 객체에서 인앱 파라미터 기본값을 설정하면 Remote Config 백엔드에 연결되기 전까지는 앱이 의도한 대로 작동하고, 백엔드에 값이 설정되어 있지 않으면 기본값을 사용할 수 있습니다.
배열 크기가 있는
ConfigKeyValue*객체 또는ConfigKeyValueVariant*객체를 사용하여 파라미터 이름과 파라미터 기본값 집합을 정의합니다.Remote Config 백엔드 파라미터 값을 이미 구성한 경우 이러한 키-값 쌍이 포함된 파일을 다운로드하여
map객체를 구성할 수 있습니다. 자세한 내용은 Remote Config 템플릿 기본값 다운로드를 참조하세요.SetDefaults()를 사용하여 이러한 값을 Remote Config 객체에 추가합니다.
4단계: 앱에서 사용할 매개변수 값 가져오기
이제 Remote Config 객체에서 파라미터 값을 가져올 수 있습니다. Remote Config 백엔드에서 값을 설정한 후 값을 가져와서 활성화하면 이 값이 앱에 적용됩니다. 그렇지 않은 경우 SetDefaults()를 사용하여 인앱 파라미터 값을 구성합니다.
이러한 값을 가져오려면 매개변수 키를 인수로 제공하여 앱에서 예상하는 데이터 유형에 매핑되는 다음 메서드 중 하나를 호출합니다.
5단계: 매개변수 값 설정
- Firebase Console에서 프로젝트를 엽니다.
- 메뉴에서 Remote Config을 선택하여 Remote Config 대시보드를 표시합니다.
- 앱에 정의한 매개변수와 같은 이름으로 매개변수를 정의합니다. 각 매개변수에 기본값 및 조건부 값을 설정할 수 있으며, 기본값은 이후에 인앱 기본값을 재정의합니다. 자세한 내용은 Remote Config 파라미터 및 조건을 참조하세요.
6단계: 값 가져오기 및 활성화
- Remote Config 백엔드에서 파라미터 값을 가져오려면
Fetch()메서드를 호출합니다. 백엔드에 설정한 모든 값이 수신되어 Remote Config 객체에 캐시됩니다. - 가져온 매개변수 값을 앱에 적용하려면
ActivateFetched()메서드를 호출합니다.
7단계: 실시간 업데이트 리슨
파라미터 값을 가져온 후 실시간 Remote Config을 사용하여 Remote Config 백엔드의 업데이트를 리슨할 수 있습니다. 실시간 Remote Config은 사용 가능한 업데이트가 있을 때 연결된 기기에 신호를 보내고 새로운 Remote Config 버전을 게시한 후 변경사항을 자동으로 가져옵니다.
실시간 업데이트는 Android 및 Apple 플랫폼용 Firebase C++ SDK v11.0.0 이상에서 지원됩니다.
- 앱에서
AddOnConfigUpdateListener를 호출하여 업데이트 리슨을 시작하고 새로운 또는 업데이트된 매개변수 값을 자동으로 가져옵니다. 다음 예시는 업데이트를 리슨하고Activate가 호출되면 새로 가져온 값을 사용하여 업데이트된 환영 메시지를 표시합니다.
remote_config->AddOnConfigUpdateListener( [](firebase::remote_config::ConfigUpdate&& config_update, firebase::remote_config::RemoteConfigError remote_config_error) { if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) { printf("Error listening for config updates: %d", remote_config_error); } // Search the `updated_keys` set for the key "welcome_message." // `updated_keys` represents the keys that have changed since the last // fetch. if (std::find(config_update.updated_keys.begin(), config_update.updated_keys.end(), "welcome_message") != config_update.updated_keys.end()) { remote_config->Activate().OnCompletion( [&](const firebase::Future& completed_future, void* user_data) { // The key "welcome_message" was found within `updated_keys` and // can be activated. if (completed_future.error() == 0) { DisplayWelcomeMessage(); } else { printf("Error activating config: %d", completed_future.error()); } }, nullptr); } });
다음에 새로운 버전의 Remote Config을 게시하면 앱을 실행하고 변경사항을 리슨하는 기기가 구성 업데이트 리스너를 호출합니다.