2022년 10월 18일에 오프라인과 온라인으로 진행될 Firebase Summit에 참여하세요. Firebase로 앱을 빠르게 개발하고 안심하고 앱을 출시하며 손쉽게 확장하는 방법을 알아보세요. 지금 등록하기

Firebase 원격 구성 시작하기

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.


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

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

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

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

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

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

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

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

  • Firebase Unity SDK(구체적으로 FirebaseRemoteConfig.unitypackage)를 Unity 프로젝트에 추가합니다.

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

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

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

이렇게 하려면 문자열 사전을 만들고 추가할 기본값을 나타내는 키-값 쌍으로 채웁니다. 원격 구성 백엔드 매개변수 값을 이미 구성한 경우 이러한 키-값 쌍이 포함된 파일을 다운로드하여 문자열 사전을 구성할 수 있습니다. 자세한 내용은 원격 구성 템플릿 기본값 다운로드를 참조하세요.

(문자열이 아닌 속성은 SetDefaultsAsync() 호출 시 속성의 유형으로 변환됩니다.)

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.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

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

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

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

4단계: Firebase Console에서 앱 연결

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

5단계: 매개변수 값 설정

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

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

원격 구성 백엔드에서 매개변수 값을 가져오려면 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.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

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

7단계: (선택사항) 개발자 모드 사용 설정

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

다음 단계

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