Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Firebase 원격 구성 시작하기

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


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

원격 구성 라이브러리는 인앱 기본 매개변수 값을 저장하고, 원격 구성 백엔드에서 업데이트된 매개변수 값을 가져오고, 가져온 값을 앱에서 사용할 수 있는 시기를 제어하는 ​​데 사용됩니다. 자세히 알아보려면 원격 구성 로드 전략 을 참조하세요.

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

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

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

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

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

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

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

Unity 프로젝트에 Firebase를 추가하려면 Firebase 콘솔 과 열려 있는 Unity 프로젝트 모두에서 작업이 필요합니다(예: 콘솔에서 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 콘솔에서 앱 연결

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

5단계: 매개변수 값 설정

  1. Firebase 콘솔 에서 프로젝트를 엽니다.
  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);
}

위의 코드에서 FetchComplete 는 서명이 ContinueWithOnMainThread() 오버로드 중 하나의 매개 변수와 일치하는 메서드입니다.

아래 샘플 코드에서 FetchComplete 메서드는 이전 작업( fetchTask )에 전달되어 FetchComplete 가 완료 여부를 확인할 수 있습니다. 이 코드는 Info.LastFetchStatus 를 사용하여 완료 여부 확인합니다. 그렇다면 원격 구성 매개변수 값은 activateAsync() 를 사용하여 활성화됩니다.

private void FetchComplete(Task fetchTask) {
  if (!fetchTask.IsCompleted) {
    Debug.LogError("Retrieval hasn't finished.");
    return;
  }

  var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
  var info = remoteConfig.Info;
  if(info.LastFetchStatus != LastFetchStatus.Success) {
    Debug.LogError($"{nameof(FetchComplete)} was unsuccessful\n{nameof(info.LastFetchStatus)}: {info.LastFetchStatus}");
    return;
  }

  // Fetch successful. Parameter values must be activated to use.
  remoteConfig.ActivateAsync()
    .ContinueWithOnMainThread(
      task => {
        Debug.Log($"Remote data loaded and ready for use. Last fetch time {info.FetchTime}.");
    });
}

FetchAsync() 를 통해 가져온 값은 가져오기가 완료되면 로컬로 캐시되지만 ActivateAsync() 가 호출될 때까지 사용할 수 없습니다. 이를 통해 새 값이 계산 중간에 적용되지 않도록 하거나 문제나 이상한 동작을 유발할 수 있는 다른 시간에 적용되지 않도록 할 수 있습니다.

7단계: (선택 사항) 개발자 모드 활성화

개발 중에 제한을 비활성화하는 데 사용할 수 있는 개발자 모드를 활성화하려면 FirebaseRemoteConfig.Setting 속성을 사용하여 IsDeveloperMode 가 true로 설정된 새 ConfigSettings 를 설정할 수 있습니다.

다음 단계

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: