본문 바로가기
Front-end/Android (안드로이드 앱 개발)

Android Studio , Firebase 파이어베이스 : 원격 구성 , remote config

by javapp 자바앱 2021. 1. 22.
728x90

 

파이어베이스 원격 구성

파이어베이스 원격 구성으로 클라우드에서 앱의 매개변수를 정의하고 값을 업데이트하면

앱의 xml에 값이 반영이되어 앱의 모양과 동작을 수정할 수 있다.

 

 

1. 모듈(앱) Gradle 파일 SDK 추가

dependencies {
    // Declare the dependencies for the Remote Config and Analytics libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-config'
    implementation 'com.google.firebase:firebase-analytics'
}

 

 

2.

싱글톤 객체 가져오기

인앱 매개변수 기본값 설정

원격 구성 백엔드에서 매개변수 값 가져오기

 

함수로 구성

    private void remoteConfig()
    {
        mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();

        //디버깅 테스트 할때 0 시간 , 배포시 지우기
        FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
                .setMinimumFetchIntervalInSeconds(0) //시간
                .build();
        mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

        //서버에 매칭되는 값이 없을때 참조
        mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

        mFirebaseRemoteConfig.fetchAndActivate().addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
            @Override
            public void onComplete(@NonNull Task<Boolean> task) {
                if (task.isSuccessful()) {
                    boolean updated = task.getResult();
                    Toast.makeText(UserActivity.this, "Fetch and activate succeeded",
                            Toast.LENGTH_SHORT).show();

                } else {
                    Toast.makeText(UserActivity.this, "Fetch failed",
                            Toast.LENGTH_SHORT).show();
                }
                displayWelcomeMessage();
            }
        });
    }

 

 

3.

xml >> remote_config_defaults.xml

 

<?xml version="1.0" encoding="utf-8"?>
<!-- START xml_defaults -->
<defaultsMap>
    <entry>
        <key>btnColor</key>
        <value>#FFEA70FF</value>
    </entry>
    <entry>
        <key>is_server_chk</key>
        <value>false</value>
    </entry>
    <entry>
        <key>welcome_message</key>
        <value>서버 점검중</value>
    </entry>
</defaultsMap>
    <!-- END xml_defaults -->

 

 

클라우드에서 키에 대한 value 을 수정할 수 있다.

 

 

 

4.

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

getBoolean()
getByteArray()
getDouble()
getLong()
getString()

 

 

    private void displayWelcomeMessage()
    {
        //btnOut, btnRevoke, btnImg,btnUpload, btnUploadedImage;
        String btnColor = mFirebaseRemoteConfig.getString("btnColor");
        boolean isServerChk = mFirebaseRemoteConfig.getBoolean("is_server_chk");
        String msg = mFirebaseRemoteConfig.getString("welcome_message");

        btnUploadedImage.setBackgroundColor(Color.parseColor(btnColor));
        btnUpload.setBackgroundColor(Color.parseColor(btnColor));

        if(isServerChk)
        {
            AlertDialog.Builder albuilder = new AlertDialog.Builder(this);
            albuilder.setMessage(msg).setPositiveButton("확인", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    UserActivity.this.finish();
                }
            });
            albuilder.show();
        }
    }

 

get을 통해 클라우드의 값을 가져오면 xml 이 아닌 파이어베이스에서 가져온 값이 인앱에 반영이 된다.

 

 

이 처럼 앱 업데이트를 배포하지 않고도 앱 영향을 끼치고 싶을 때 사용하기 좋다.

댓글