Unity용 Firebase 원격 구성 시작하기

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

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

이 가이드는 시작하는 단계를 안내하고 샘플 코드를 제공합니다. 이 샘플 코드는 firebase/quickstart-unity GitHub 저장소에서 클론하거나 다운로드할 수 있습니다.

앱에 원격 구성 추가

원격 구성을 사용하려면 먼저 다음 작업이 필요합니다.

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

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

    • Unity 프로젝트가 없는 경우 샘플 앱을 다운로드하면 됩니다.

  • Firebase Unity SDK(특히 FirebaseRemoteConfig.unitypackage)를 Unity 프로젝트에 추가합니다.

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

인앱 매개변수 기본값 설정

백엔드에서 다른 값이 검색되지 않을 때 사용할 매개변수 기본값을 원격 구성 객체에 설정할 수 있습니다. 이렇게 하면 앱이 원격 구성 백엔드에 연결되기 전에도 의도한 대로 작동합니다.

이렇게 하려면 문자열 사전을 만들고 추가할 기본값을 나타내는 키-값 쌍으로 채웁니다. 문자열이 아닌 속성은 SetDefaults 호출 시 속성의 유형으로 변환됩니다.

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.SetDefaults(defaults);

앱에서 사용할 매개변수 값 가져오기

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

이 값을 가져오려면 매개변수 키를 인수로 전달해 GetValue()를 사용합니다. 이때 반환되는 ConfigValue의 속성을 사용하여 값을 다양한 기본 유형으로 변환할 수 있습니다.

Firebase Console에서 앱 연결

Firebase Console에서 Firebase 프로젝트에 대상 앱을 추가합니다.

매개변수 값 설정

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

값 가져오기 및 활성화(필요한 경우)

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

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask = Firebase.RemoteConfig.FirebaseRemoteConfig.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

FetchAsync()를 통해 가져온 값은 가져오기가 완료될 때 로컬에 캐시되지만 ActivateFetched()를 호출해야 사용할 수 있게 됩니다. FetchAsync()는 비동기적으로 실행되므로 계산 중에는 새 값이 적용되지 않습니다. 문제나 비정상적인 동작을 유발할 수 있는 기타 상황에서도 새 값이 적용되지 않습니다.

(선택사항) 개발자 모드 사용 설정

개발 중에 제한을 해제하고자 개발자 모드를 사용 설정하려면 FirebaseRemoteConfig.Setting 속성을 사용하고 IsDeveloperMode를 true로 지정하여 새 ConfigSettings를 설정합니다.

다음 단계

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