Firebase 원격 구성 시작하기


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를 추가한 후:

  1. Firebase 앱을 만들고 JNI 환경 및 액티비티를 전달합니다.

    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);

  2. 다음과 같이 Remote Config 라이브러리를 초기화합니다.

    ::firebase::remote_config::Initialize(app);

iOS+

앱에 Firebase를 추가한 후:

  1. Firebase 앱을 만듭니다.

    app = ::firebase::App::Create(::firebase::AppOptions());

  2. 다음과 같이 Remote Config 라이브러리를 초기화합니다.

    ::firebase::remote_config::Initialize(app);

3단계: 인앱 매개변수 기본값 설정

Remote Config 객체에서 인앱 파라미터 기본값을 설정하면 Remote Config 백엔드에 연결되기 전까지는 앱이 의도한 대로 작동하고, 백엔드에 값이 설정되어 있지 않으면 기본값을 사용할 수 있습니다.

  1. 배열 크기가 있는 ConfigKeyValue* 객체 또는 ConfigKeyValueVariant* 객체를 사용하여 파라미터 이름과 파라미터 기본값 집합을 정의합니다.

    Remote Config 백엔드 파라미터 값을 이미 구성한 경우 이러한 키-값 쌍이 포함된 파일을 다운로드하여 map 객체를 구성할 수 있습니다. 자세한 내용은 Remote Config 템플릿 기본값 다운로드를 참조하세요.

  2. SetDefaults()를 사용하여 이러한 값을 Remote Config 객체에 추가합니다.

4단계: 앱에서 사용할 매개변수 값 가져오기

이제 Remote Config 객체에서 파라미터 값을 가져올 수 있습니다. Remote Config 백엔드에서 값을 설정한 후 값을 가져와서 활성화하면 이 값이 앱에 적용됩니다. 그렇지 않은 경우 SetDefaults()를 사용하여 인앱 파라미터 값을 구성합니다.

이러한 값을 가져오려면 매개변수 키를 인수로 전달하여 앱의 예상 데이터 유형에 매핑하는 아래의 메서드를 호출합니다.

5단계: 매개변수 값 설정

  1. Firebase Console에서 프로젝트를 엽니다.
  2. 메뉴에서 Remote Config을 선택하여 Remote Config 대시보드를 표시합니다.
  3. 앱에 정의한 매개변수와 같은 이름으로 매개변수를 정의합니다. 각 매개변수에 기본값 및 조건부 값을 설정할 수 있으며, 기본값은 이후에 인앱 기본값을 재정의합니다. 자세한 내용은 Remote Config 파라미터 및 조건을 참조하세요.

6단계: 값 가져오기 및 활성화

  1. Remote Config 백엔드에서 파라미터 값을 가져오려면 Fetch() 메서드를 호출합니다. 백엔드에 설정한 모든 값이 수신되어 Remote Config 객체에 캐시됩니다.
  2. 가져온 매개변수 값을 앱에 적용하려면 ActivateFetched() 메서드를 호출합니다.

7단계: 실시간 업데이트 리슨

파라미터 값을 가져온 후 실시간 Remote Config을 사용하여 Remote Config 백엔드의 업데이트를 리슨할 수 있습니다. 실시간 Remote Config은 사용 가능한 업데이트가 있을 때 연결된 기기에 신호를 보내고 새로운 Remote Config 버전을 게시한 후 변경사항을 자동으로 가져옵니다.

실시간 업데이트는 Android 및 Apple 플랫폼용 Firebase C++ SDK v11.0.0 이상에서 지원됩니다.

  1. 앱에서 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을 게시하면 앱을 실행하고 변경사항을 리슨하는 기기가 구성 업데이트 리스너를 호출합니다.

다음 단계

아직 Remote Config 사용 사례를 살펴보지 않았다면 살펴보고 다음을 포함하여 주요 개념과 고급 전략 문서를 참조하세요.