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 이 아닌 파이어베이스에서 가져온 값이 인앱에 반영이 된다.
이 처럼 앱 업데이트를 배포하지 않고도 앱 영향을 끼치고 싶을 때 사용하기 좋다.
댓글