Remote config란, key-value쌍으로 이루어진 값을 Firebase Remote config에 등록하면,
몇줄의 간단한 코드로 app에서 가져오게 할 수 있는 기능입니다.
이를 이용해서 사용자의 업데이트 없이 앱의 동작과 뷰를 수정할수도 있고, A/B테스트를 수행하는 등,
굉장히 강력하지만, 손쉽게 사용할 수 있는 기능입니다.
해당 방법 또한 firebase에 적용하고 싶은 앱을 등록하고, application package에는
firebase project의 goole-service.json을 app수준 폴더에 위치시켜야 합니다. 해당 방법은 건너뛰겠습니다.\
만약, 여러개의 firebase proejct를 하나의 앱에 등록하고 싶다면, firebase instance를 생성해 해당 component의 instance를 별도로 생성해 주어야 합니다.
앱에 Remote config SDK 추가하기
dependencies {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:29.0.3')
// 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-ktx'
implementation 'com.google.firebase:firebase-analytics-ktx'
}
Remote config 객체 가져오기
remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)
minimumFetchIntervalInSeconds : 설정한 초만큼 inertval을 가지고 불러옵니다.
3600인경우 해당 key-value를 획득한지 10시간(3600초 = 600분 = 10시갼)이 지나지 않았을 경우 불러오지 않습니다.
SDK버전 17이전에는 1시간당 5번이 한계였고, 지금은 조금 늘어났지만, 정확한 수치는 밝히고 있지 않으므로 1시간당 5번 불러오도록
세팅하는것이 좋겠죠...?
Remote config 기본값 설정하기
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_default_configs)
//R.xml.remote_default_configs
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
<entry>
<key>remote_test_key</key>
<value>bye_world</value>
</entry>
</defaultsMap>
획득과 동시에 앱에 적용하기
remoteConfig.fetchAndActivate()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val updated = task.result
Log.d(TAG, "Config params updated: $updated")
Toast.makeText(this, "Fetch and activate succeeded",
Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "Fetch failed",
Toast.LENGTH_SHORT).show()
}
//set your method
displayWelcomeMessage()
}
remote config에서 변수를 불러오는 fetch와, 앱에 적용하는 activiate는 별도의 함수로 따로 호출할 수 있습니다.
하지만, fetch와 activeate를 한번에 호출할 수도 있습니다.
fetchAnActivate 이전 remoteConfig.getString("YOUR_SET_KEY")로 값을 가져오면 mxl에 설정한 기본값이나,
가장 마지막으로 없데이트된 값을 가져오며, fetchAndActivate이후 호출하면 remoteConfig값을 출력하게 됩니다.
간단한 boolean값부터 json 데이터까지 폭넓게 적용이 가능하고, cloud function을 이용해서 더욱 더 다양한 상황에 매칭시켜
적용할수 있습니다. 더 자세한 내용은 문서를 참고해 주세요!
참고
https://firebase.google.com/docs/remote-config
'IDE & Framework > Android' 카테고리의 다른 글
[Kotlin] Broadcast recevier란? 사용법과 예제 (1) | 2022.01.15 |
---|---|
[Kotlin] Broadcast 란? 사용법과 예제 (0) | 2022.01.15 |
[Kotlin] Firebase Crashlytics 적용시키기 (간단!) (0) | 2022.01.09 |
[Kotlin] Firebase Crashlytics 적용시키기 (간단!) (0) | 2022.01.09 |
[JAVA] Base64 incoding, decoding (0) | 2022.01.06 |