Firebase 원격 구성을 사용하여 앱에서 매개변수를 정의하고 클라우드에서 해당 값을 업데이트할 수 있으므로 앱 업데이트를 배포하지 않고도 앱의 모양과 동작을 수정할 수 있습니다. 이 가이드는 시작 단계를 안내하고 몇 가지 샘플 코드를 제공합니다. 모두 firebase/quickstart-js GitHub 저장소에서 복제하거나 다운로드할 수 있습니다.
1단계: 원격 구성 SDK 추가 및 초기화
아직 하지 않았다면 Firebase JS SDK를 설치하고 Firebase를 초기화 합니다.
원격 구성 JS SDK를 추가하고 원격 구성을 초기화합니다.
Web version 9
import { initializeApp } from "firebase/app"; import { getRemoteConfig } from "firebase/remote-config"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = getRemoteConfig(app);
Web version 8
import firebase from "firebase/app"; import "firebase/remote-config"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Remote Config and get a reference to the service const remoteConfig = firebase.remoteConfig();
이 개체는 인앱 기본 매개변수 값을 저장하고, 원격 구성 백엔드에서 업데이트된 매개변수 값을 가져오고, 가져온 값을 앱에서 사용할 수 있는 시기를 제어하는 데 사용됩니다.
2단계: 최소 가져오기 간격 설정
개발 중에는 최소 가져오기 간격을 상대적으로 낮게 설정하는 것이 좋습니다. 자세한 내용은 스로틀링 을 참조하십시오.
Web version 9
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web version 8
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
3단계: 인앱 기본 매개변수 값 설정
앱이 원격 구성 백엔드에 연결되기 전에 의도한 대로 작동하고 백엔드에 아무것도 설정되지 않은 경우 기본값을 사용할 수 있도록 원격 구성 개체에서 인앱 기본 매개변수 값을 설정할 수 있습니다.
Web version 9
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web version 8
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
원격 구성 백엔드 매개변수 값을 이미 구성한 경우 모든 기본값을 포함하는 생성된 JSON 파일을 다운로드하여 앱 번들에 포함할 수 있습니다.
쉬다
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=JSON -o remote_config_defaults.json
Firebase 콘솔
- 매개변수 탭에서 메뉴 를 열고 기본값 다운로드 를 선택합니다.
- 메시지가 표시되면 웹용 .json을 활성화한 다음 파일 다운로드 를 클릭합니다.
다음 예는 앱에서 기본값을 가져오고 설정할 수 있는 두 가지 다른 방법을 보여줍니다. 첫 번째 예시는 앱 번들에 포함된 기본 파일에 대한 HTTP 요청을 만드는 fetch
를 사용합니다.
const rcDefaultsFile = await fetch('remote_config_defaults.json'); const rcDefaultsJson = await rcDefaultsFile.json(); remoteConfig.defaultConfig = rcDefaultsJson;
다음 예제에서는 빌드 시 값을 앱으로 컴파일하는 require
를 사용합니다.
let rcDefaults = require('./remote_config_defaults.json'); remoteConfig.defaultConfig = rcDefaults;
4단계: 앱에서 사용할 매개변수 값 가져오기
이제 원격 구성 개체에서 매개변수 값을 가져올 수 있습니다. 나중에 백엔드에서 값을 설정하고 가져온 다음 활성화하면 해당 값을 앱에서 사용할 수 있습니다. 이러한 값을 가져오려면 매개변수 키를 인수로 제공하여 getValue()
메서드를 호출합니다.
Web version 9
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web version 8
const val = remoteConfig.getValue("welcome_messsage");
5단계: 매개변수 값 설정
Firebase 콘솔 또는 원격 구성 백엔드 API 를 사용하여 원하는 조건부 논리 또는 사용자 타겟팅에 따라 인앱 값을 재정의하는 새 서버 측 기본값을 만들 수 있습니다. 이 섹션에서는 이러한 값을 생성하는 Firebase 콘솔 단계를 안내합니다.
- Firebase 콘솔 에서 프로젝트를 엽니다.
- 원격 구성 대시보드를 보려면 메뉴에서 원격 구성 을 선택합니다.
- 앱에서 정의한 매개변수와 이름이 같은 매개변수를 정의합니다. 각 매개변수에 대해 기본값(결국 인앱 기본값을 재정의함)을 설정할 수 있으며 조건부 값도 설정할 수 있습니다. 자세한 내용은 원격 구성 매개변수 및 조건 을 참조하십시오.
6단계: 값 가져오기 및 활성화
- 원격 구성 백엔드에서 매개변수 값을 가져오려면
fetchConfig()
메서드를 호출하세요. 백엔드에서 설정한 모든 값은 원격 구성 개체에서 가져와 캐시됩니다. - 가져온 매개변수 값을 앱에서 사용할 수 있도록 하려면
activate()
메서드를 호출하세요.
한 번의 호출로 값을 가져오고 활성화하려는 경우 다음 예제와 같이 fetchAndActivate()
를 사용합니다.
Web version 9
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web version 8
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
이러한 업데이트된 매개변수 값은 앱의 동작과 모양에 영향을 미치기 때문에 다음에 사용자가 앱을 열 때와 같이 사용자에게 원활한 경험을 제공할 수 있는 시간에 가져온 값을 활성화해야 합니다. 자세한 내용과 예시는 원격 구성 로딩 전략 을 참조하세요.
쓰로틀링
앱이 단기간에 너무 많이 가져오면 가져오기 호출이 제한될 수 있습니다. 이러한 경우 SDK는 FETCH_THROTTLE
오류를 발생시킵니다. 이 오류를 포착하고 지수 백오프 모드에서 다시 시도하여 후속 가져오기 요청 사이에 더 긴 간격을 기다리는 것이 좋습니다.
앱을 개발하는 동안 앱을 개발하고 테스트하면서 빠르게 반복할 수 있도록 캐시를 매우 자주(시간당 여러 번) 새로 고칠 수 있습니다. 수많은 개발자가 참여하는 프로젝트에서 빠른 반복을 수용하기 위해 앱에서 최소 가져오기 간격이 낮은 속성( Settings.minimumFetchIntervalMillis
)을 일시적으로 추가할 수 있습니다.
원격 구성의 기본 및 권장 프로덕션 가져오기 간격은 12시간입니다. 즉, 실제로 수행된 가져오기 호출 수에 관계없이 12시간 창에서 두 번 이상 백엔드에서 구성을 가져오지 않습니다. 특히 최소 가져오기 간격은 다음 순서로 결정됩니다.
-
Settings.minimumFetchIntervalMillis
의 매개변수. - 기본값은 12시간입니다.
다음 단계
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: