콘솔로 이동

Unity용 Firebase 원격 구성 시작하기

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

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

앱에 원격 구성 추가

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

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

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

    • Unity 프로젝트가 없는 경우 샘플 앱을 다운로드할 수 있습니다.

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

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

인앱 매개변수 기본값 설정

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

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

System.Collections.Generic.Dictionary defaults =
  new System.Collections.Generic.Dictionary();

// These are the values that are used if we haven't fetched data from the
// service yet, or if we ask for values that the service doesn't have:
defaults.Add("propertyname_string", "default local string");
defaults.Add("propertyname_int", 1);
defaults.Add("propertyname_float", 1.0);
defaults.Add("propertyname_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.SetDefaults(defaults);

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

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

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

Firebase 콘솔에서 앱 연결

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

서비스에서 매개변수 값 설정(필요한 경우)

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

서비스에서 값을 가져와서 활성화(필요한 경우)

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

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

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

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