Firebase 원격 구성 시작하기


Firebase 원격 구성으로 클라우드에서 앱의 매개변수를 정의하고 값을 업데이트하면 앱 업데이트를 배포하지 않고도 앱의 모양과 동작을 수정할 수 있습니다.

원격 구성 라이브러리를 사용하여 인앱 매개변수 기본값을 저장하고, 업데이트된 매개변수 값을 원격 구성 백엔드에서 가져오고, 가져온 값을 앱에 적용할 시점을 제어합니다. 자세한 내용은 원격 구성 로딩 전략을 참조하세요.

1단계: 앱에 Firebase 추가

원격 구성을 사용하려면 먼저 다음 작업을 해야 합니다.

  • C++ 프로젝트를 등록하고 Firebase를 사용하도록 구성합니다.

    C++ 프로젝트에서 현재 Firebase를 사용하고 있다면 이미 등록되어 Firebase용으로 구성된 상태입니다.

  • C++ 프로젝트에 Firebase C++ SDK를 추가합니다.

C++ 프로젝트에 Firebase를 추가할 때 Firebase Console 및 열려 있는 C++ 프로젝트 모두에서 작업을 수행해야 합니다. 예를 들어 Console에서 Firebase 구성 파일을 다운로드한 후 이 파일을 C++ 프로젝트로 옮기는 작업이 필요합니다.

2단계: 앱에 원격 구성 추가

Android

앱에 Firebase를 추가한 후:

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

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

  2. 다음과 같이 원격 구성 라이브러리를 초기화합니다.

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

iOS+

앱에 Firebase를 추가한 후:

  1. Firebase 앱을 만듭니다.

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

  2. 다음과 같이 원격 구성 라이브러리를 초기화합니다.

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

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

원격 구성 객체에서 인앱 매개변수 기본값을 설정하면 원격 구성 백엔드에 연결되기 전까지는 앱이 의도한 대로 작동하고, 백엔드에 값이 설정되어 있지 않으면 기본값을 사용할 수 있습니다.

  1. std::map<const char*, const char*> 객체 또는 std::map<const char*, firebase::Variant> 객체를 사용하여 매개변수 이름과 매개변수 기본값 집합을 정의합니다.

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

  2. SetDefaults()를 사용하여 이러한 값을 원격 구성 객체에 추가합니다.

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

이제 원격 구성 객체에서 매개변수 값을 가져올 수 있습니다. 원격 구성 백엔드에서 값을 설정한 후 값을 가져와서 활성화하면 이 값이 앱에 적용됩니다. 그렇지 않으면 SetDefaults()를 사용하여 구성한 인앱 매개변수 값을 가져옵니다.

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

5단계: Firebase Console에서 앱 연결

Firebase console에서 Firebase 프로젝트에 앱을 추가합니다.

6단계: 매개변수 값 설정

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

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

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

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

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

실시간 업데이트는 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);
      }
    });

다음에 새로운 버전의 원격 구성을 게시하면 앱을 실행하고 변경사항을 리슨하는 기기가 구성 업데이트 리스너를 호출합니다.

다음 단계

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