본문 바로가기
개발/Unity

Unity)Firebase) Remote Config 활용하기

by 테샤르 2020. 10. 26.

Firebase  Remote Config 활용하기

Remote Config는 특정한 config 값 빌드(실행파일)에 포함하지 않고 외부에서 변경할 수 있게 하는 시스템이다.

 

관리자 페이지에서 Config 값을 변경하면 Config 값을 읽도록 구성되어있는 서비스에서 Fetch를 받게 되면 변경된 값을 가져올 수 있다. Firebase에서는 기본적으로 JSON을 기본 형태로 적용되기 때문에 Key, Value를 기본으로 입력해야 한다.

 

< Firebase Remote Config 설정 하기 >

Firebase 참고 URL :  [원격 구성]

 

Firebase에서 설정값을 넣으면 해당 값에 대한 가져오는 코드를 처리해야 한다.

반응형

가이드에 보면 Default 값을 명시하라고 되어있어서 계정을 생성하는 순간에 값을 초기화해준다.

그리고 Fetch를 받는 코드를 작성해서 테스트해본다.

< Remote Config 값을 불러오는 코드 >

            //Remote Config
            System.Collections.Generic.Dictionary<string, object> defaults = new System.Collections.Generic.Dictionary<string, object>();
            defaults.Add("AppVersion", "");
            Firebase.RemoteConfig.FirebaseRemoteConfig.SetDefaults(defaults);
 public void UpdateFetchRemoteConfig()
    {
        var settings = Firebase.RemoteConfig.FirebaseRemoteConfig.Settings;
        settings.IsDeveloperMode = true;
        Firebase.RemoteConfig.FirebaseRemoteConfig.Settings = settings;

        System.Threading.Tasks.Task fetchTask = Firebase.RemoteConfig.FirebaseRemoteConfig.FetchAsync(new System.TimeSpan(0));
        fetchTask.ContinueWith(task => {
            if (task.IsCanceled || task.IsFaulted)
            {
                Debug.LogError("Faild.");
            }
            else
            {
                string configString = Firebase.RemoteConfig.FirebaseRemoteConfig.GetValue("AppVersion").StringValue;
                configInfo = JsonUtility.FromJson<FirebaseConfig>(configString);
                Debug.LogFormat("Completed :{0}", configString);

            }

            Firebase.RemoteConfig.FirebaseRemoteConfig.ActivateFetched();
        });
    }

 

< Remote Config 값 변경 확인 >

값을 변하고 정상적으로 패치가 되는지 확인해본다.

"IOS_Version = 1.0.1"에서 "IOS_Version = 1.2.3"으로 변경하고 다시 Fetch를 받아본다.

중간에 값이 정상적으로 바뀐 것을 확인할 수 있다.

 

재 빌드를 하지 않아도 값 변경을 진행이 가능해서, 버전 관리 및 특정 값(광고 노출값, 특정 자주 변경이 되는 값 )등을 관리하는 과정에서 좀 더 수월하다.

 

실시간으로 바뀌는것보다는 특정 시점과 배포의 시간이 일정하지 않다는 것을 고려해서 사용해야 한다.

 

 

★★

 

반응형

댓글