Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

원격 구성 매개변수 및 조건

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Firebase 콘솔 또는 원격 구성 백엔드 API를 사용하는 경우 하나 이상의 매개변수(키-값 쌍)를 정의하고 해당 매개변수에 대한 인앱 기본값을 제공합니다. 서버측 매개변수 값을 정의하여 인앱 기본값을 재정의할 수 있습니다. 매개변수 키와 매개변수 값은 문자열이지만 앱에서 이러한 값을 사용할 때 매개변수 값을 다른 데이터 유형으로 캐스트할 수 있습니다.

Firebase 콘솔, Admin SDK 또는 원격 구성 REST API를 사용하여 앱 인스턴스 그룹을 타겟팅하는 데 사용되는 조건부 값뿐만 아니라 매개변수의 새 기본값을 만들 수 있습니다. Firebase Console에서 구성을 업데이트할 때마다 Firebase는 새 버전의 원격 구성 템플릿을 만들고 게시합니다. 이전 버전이 저장되어 필요에 따라 검색하거나 롤백할 수 있습니다. 이러한 작업은 Firebase 콘솔, Firebase Admin SDK 및 REST API를 통해 사용할 수 있으며 원격 구성 템플릿 버전 관리 에 자세히 설명되어 있습니다.

이 가이드에서는 매개변수, 조건, 규칙, 조건부 값, 원격 구성 서버와 앱에서 다양한 매개변수 값의 우선순위를 지정하는 방법에 대해 설명합니다. 또한 조건을 만드는 데 사용되는 규칙 유형에 대한 세부 정보도 제공합니다.

조건, 규칙 및 조건부 값

조건은 앱 인스턴스 그룹을 대상으로 하는 데 사용됩니다. 조건은 지정된 앱 인스턴스에 대해 조건이 true 로 평가되려면 모두 true 로 평가되어야 하는 하나 이상의 규칙으로 구성됩니다. 규칙 값이 정의되지 않은 경우(예: 사용 가능한 값이 없는 경우) 해당 규칙은 false 로 평가됩니다.

예를 들어 앱의 스플래시 페이지를 정의하는 매개변수는 간단한 규칙인 if device_os = Android 를 사용하여 OS 유형에 따라 다른 이미지를 표시할 수 있습니다.

iOS의 기본값과 Android의 조건부 값을 보여주는 Firebase 콘솔의 'splash_page' 매개변수 화면 캡처

또는 시간 조건을 사용하여 앱에서 특별 프로모션 항목을 표시하는 시기를 제어할 수 있습니다.

매개변수는 서로 다른 조건을 사용하는 여러 조건부 값을 가질 수 있으며 매개변수는 프로젝트 내에서 조건을 공유할 수 있습니다. Firebase 콘솔의 매개변수 탭 에서 각 매개변수의 조건부 값에 대한 가져오기 비율을 볼 수 있습니다. 이 지표는 각 값을 수신한 지난 24시간 동안의 요청 비율을 나타냅니다.

매개변수 값 우선순위

매개변수에는 연관된 여러 조건부 값이 있을 수 있습니다. 다음 규칙은 원격 구성 서버에서 가져올 값과 특정 시점에 지정된 앱 인스턴스에서 사용되는 값을 결정합니다.

다음 우선순위 목록에 따라 서버측 매개변수 값을 가져옵니다.

  1. 먼저 주어진 앱 인스턴스에 대해 true 로 평가되는 조건이 있는 경우 조건부 값이 적용됩니다. 여러 조건이 true 로 평가되면 Firebase 콘솔 UI에 표시된 첫 번째(상단) 조건이 우선하며 앱이 백엔드에서 값을 가져올 때 해당 조건과 연결된 조건부 값이 제공됩니다. 조건 탭에서 조건을 드래그 앤 드롭하여 조건의 우선 순위를 변경할 수 있습니다.

  2. 조건이 true 로 평가되는 조건부 값이 없는 경우 앱이 백엔드에서 값을 가져올 때 서버측 기본값이 제공됩니다. 백엔드에 매개변수가 없거나 기본값이 Use in-app default 로 설정된 경우 앱이 값을 가져올 때 해당 매개변수에 값이 제공되지 않습니다.

앱에서 매개변수 값은 다음 우선 순위 목록에 따라 get 메서드에 의해 반환됩니다.

  1. 백엔드에서 값을 가져온 다음 활성화한 경우 앱은 가져온 값을 사용합니다. 활성화된 매개변수 값은 영구적입니다.
  2. 백엔드에서 가져온 값이 없거나 원격 구성 백엔드에서 가져온 값이 활성화되지 않은 경우 앱은 인앱 기본값을 사용합니다.

    기본값을 얻고 설정하는 방법에 대한 자세한 내용은 원격 구성 템플릿 기본값 다운로드를 참조하세요.

  3. 인앱 기본값이 설정되지 않은 경우 앱은 정적 유형 값(예: int 의 경우 0 , boolean 의 경우 false )을 사용합니다.

이 그래픽은 원격 구성 백엔드와 앱에서 매개변수 값의 우선순위를 요약한 것입니다.

위의 정렬된 목록에서 설명하는 흐름을 보여주는 다이어그램

매개변수 값 데이터 유형

원격 구성을 사용하면 각 매개변수에 대한 데이터 유형을 선택하고 템플릿 업데이트 전에 해당 유형에 대해 모든 서버 측 값의 유효성을 검사할 수 있습니다. 데이터 유형은 저장되고 getRemoteConfig 요청에서 반환됩니다.

현재 지원되는 유형은 다음과 같습니다.

  • String
  • Boolean
  • Number
  • JSON

Firebase 콘솔 UI에서 매개변수 키 옆에 있는 드롭다운에서 데이터 유형을 선택할 수 있습니다. REST API 유형은 매개변수 객체 내의 value_type 필드를 사용하여 설정할 수 있습니다.

매개변수 그룹

원격 구성을 사용하면 보다 조직화된 UI 및 정신 모델을 위해 매개변수를 함께 그룹화할 수 있습니다.

예를 들어 새 로그인 기능을 롤아웃하는 동안 세 가지 다른 인증 유형을 활성화 또는 비활성화해야 한다고 가정해 보겠습니다. 원격 구성을 사용하면 세 가지 매개변수를 생성하여 원하는 유형을 활성화한 다음 접두사를 추가하거나 특수 정렬할 필요 없이 "새 로그인"이라는 그룹으로 구성할 수 있습니다.

Firebase 콘솔 또는 원격 구성 REST API를 사용하여 매개변수 그룹을 만들 수 있습니다. 생성한 매개변수 그룹마다 원격 구성 템플릿에 고유한 이름이 있습니다. 매개변수 그룹을 생성할 때 다음 사항에 유의하십시오.

  • 매개변수는 언제든지 하나의 그룹에만 포함될 수 있으며 매개변수 키는 여전히 모든 매개변수에서 고유해야 합니다.
  • 파라미터 그룹 이름은 256자로 제한됩니다.
  • REST API와 Firebase 콘솔을 모두 사용하는 경우 게시 시 매개변수 그룹을 처리하도록 REST API 로직을 업데이트해야 합니다.

Firebase 콘솔을 사용하여 매개변수 그룹 생성 또는 수정

Firebase 콘솔의 매개변수 탭에서 매개변수를 그룹화할 수 있습니다. 그룹을 만들거나 수정하려면:

  1. 그룹 관리를 선택합니다.
  2. 추가하려는 매개변수의 확인란을 선택하고 그룹으로 이동을 선택합니다.
  3. 기존 그룹을 선택하거나 이름과 설명을 입력하고 새 그룹 만들기를 선택하여 새 그룹을 만듭니다. 그룹을 저장한 후 변경 사항 게시 버튼을 사용하여 게시할 수 있습니다.

프로그래밍 방식으로 그룹 만들기

원격 구성 REST API는 매개변수 그룹을 생성하고 게시하는 자동화된 방법을 제공합니다. REST에 익숙하고 API에 대한 요청을 승인하도록 설정되어 있다고 가정하면 다음 단계를 수행하여 프로그래밍 방식으로 그룹을 관리할 수 있습니다.

  1. 현재 템플릿 검색
  2. 파라미터 그룹을 나타내는 JSON 개체 추가
  3. HTTP PUT 요청을 사용하여 파라미터 그룹을 게시합니다.

parameterGroups 객체에는 중첩된 설명과 그룹화된 매개변수 목록이 있는 그룹 키가 포함되어 있습니다. 각 그룹 키는 전역적으로 고유해야 합니다.

예를 들어 다음은 pumpkin_spice_season 매개변수 하나와 함께 매개변수 그룹 "new menu"를 추가하는 템플릿 개정에서 발췌한 것입니다.

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

조건 규칙 유형

다음 규칙 유형은 Firebase 콘솔에서 지원됩니다. 조건식 참조 에 자세히 설명된 대로 원격 구성 REST API에서 동등한 기능을 사용할 수 있습니다.

규칙 유형 연산자 메모
== Firebase 프로젝트와 연결된 앱의 앱 ID 목록에서 선택하세요. Firebase에 앱을 추가할 때 원격 구성 규칙에서 앱 ID 로 노출되는 속성을 정의하는 번들 ID 또는 Android 패키지 이름을 입력합니다.

이 속성을 다음과 같이 사용하십시오.
  • Apple 플랫폼의 경우: 앱의 CFBundleIdentifier 를 사용하십시오. Xcode에서 앱의 기본 대상에 대한 일반 탭에서 번들 식별자를 찾을 수 있습니다.
  • Android의 경우: 앱의 applicationId 를 사용합니다. 앱 수준 build.gradle 파일에서 applicationId 찾을 수 있습니다.
앱 버전 문자열 값의 경우:
정확히 일치,
포함,
포함되어 있지 않다,
정규식

숫자 값의 경우:
=, ≠, >, ≥, <, ≤

타겟팅할 앱의 버전을 지정하세요.

이 규칙을 사용하기 전에 앱 ID 규칙을 사용하여 Firebase 프로젝트와 연결된 Android/Apple 앱을 선택해야 합니다.

Apple 플랫폼의 경우: 앱의 CFBundleShortVersionString 을 사용하십시오.

참고: 이전 버전에서는 CFBundleShortVersionString이 전송되지 않으므로 Apple 앱에서 Firebase Apple 플랫폼 SDK 버전 6.24.0 이상을 사용하고 있는지 확인하세요( 출시 노트 참조).

Android의 경우: 앱의 versionName 을 사용합니다.

이 규칙에 대한 문자열 비교는 대소문자를 구분합니다. 정확히 일치 , 포함 , 포함하지 않음 또는 정규식 연산자를 사용하는 경우 여러 값을 선택할 수 있습니다.

정규식 연산자를 사용하면 RE2 형식의 정규식을 만들 수 있습니다. 정규식은 대상 버전 문자열의 전체 또는 일부와 일치할 수 있습니다. ^$ 앵커를 사용하여 대상 문자열의 시작, 끝 또는 전체를 일치시킬 수도 있습니다.

빌드 번호 문자열 값의 경우:
정확히 일치,
포함,
포함되어 있지 않다,
정규 표현식

숫자 값의 경우:
=, ≠, >, ≥, <, ≤

타겟팅할 앱의 빌드를 지정합니다.

이 규칙을 사용하기 전에 앱 ID 규칙을 사용하여 Firebase 프로젝트와 연결된 Apple 또는 Android 앱을 선택해야 합니다.

이 연산자는 Apple 및 Android 앱에서만 사용할 수 있습니다. 앱의 Apple용 CFBundleVersion 및 Android용 versionCode 에 해당합니다. 이 규칙에 대한 문자열 비교는 대소문자를 구분합니다.

정확히 일치 , 포함 , 포함하지 않음 또는 정규식 연산자를 사용하는 경우 여러 값을 선택할 수 있습니다.

정규식 연산자를 사용하면 RE2 형식의 정규식을 만들 수 있습니다. 정규식은 대상 버전 문자열의 전체 또는 일부와 일치할 수 있습니다. ^$ 앵커를 사용하여 대상 문자열의 시작, 끝 또는 전체를 일치시킬 수도 있습니다.

플랫폼 == 아이폰 OS
기계적 인조 인간
편물
운영 체제 ==

타겟팅할 운영 체제를 지정합니다.

이 규칙을 사용하기 전에 앱 ID 규칙을 사용하여 Firebase 프로젝트와 연결된 웹 앱을 선택해야 합니다.

이 규칙은 운영 체제 및 해당 버전이 지정된 목록의 대상 값과 일치하는 경우 지정된 웹 앱 인스턴스에 대해 true 로 평가됩니다.
브라우저 ==

타겟팅할 브라우저를 지정합니다.

이 규칙을 사용하기 전에 앱 ID 규칙을 사용하여 Firebase 프로젝트와 연결된 웹 앱을 선택해야 합니다.

이 규칙은 브라우저와 해당 버전이 지정된 목록의 대상 값과 일치하는 경우 지정된 웹 앱 인스턴스에 대해 true 로 평가됩니다.
기기 카테고리 이다, 아니다 이동하는 이 규칙은 웹 앱에 액세스하는 디바이스가 모바일인지 비모바일(데스크톱 또는 콘솔)인지를 평가합니다. 이 규칙 유형은 웹 앱에만 사용할 수 있습니다.
언어 ~에 있다 하나 이상의 언어를 선택하십시오. 이 규칙은 앱 인스턴스가 나열된 언어 중 하나를 사용하는 기기에 설치된 경우 지정된 앱 인스턴스에 대해 true 로 평가됩니다.
국가/지역 ~에 있다 하나 이상의 지역 또는 국가를 선택합니다. 이 규칙은 인스턴스가 나열된 지역 또는 국가에 있는 경우 지정된 앱 인스턴스에 대해 true 로 평가됩니다. 기기 국가 코드는 요청의 기기 IP 주소 또는 Firebase Analytics에서 결정한 국가 코드(Analytics 데이터가 Firebase와 공유된 경우)를 사용하여 결정됩니다.
사용자 대상 최소 하나 포함 프로젝트에 대해 설정한 Google 애널리틱스 잠재고객 목록에서 하나 이상을 선택합니다.

이 규칙에는 Firebase 프로젝트와 연결된 앱을 선택하기 위한 앱 ID 규칙이 필요합니다.

참고: 많은 애널리틱스 잠재고객이 앱 사용자의 작업을 기반으로 할 수 있는 이벤트 또는 사용자 속성에 의해 정의되기 때문에 잠재고객 규칙의 사용자가 지정된 앱 인스턴스에 적용되는 데 시간이 걸릴 수 있습니다.

사용자 속성 문자열 값의 경우:
포함,
포함되어 있지 않다,
정확히 일치,
정규 표현식

숫자 값의 경우:
=, ≠, >, ≥, <, ≤

참고: 클라이언트에서는 사용자 속성에 대해 문자열 값만 설정할 수 있습니다. 숫자 연산자를 사용하는 조건의 경우 원격 구성은 해당 사용자 속성의 값을 정수/부동수로 변환합니다.
사용 가능한 Google 애널리틱스 사용자 속성 목록에서 선택합니다. 사용자 속성을 사용하여 사용자 기반의 특정 세그먼트에 맞게 앱을 맞춤설정하는 방법을 알아보려면 원격 구성 및 사용자 속성을 참조하세요.

사용자 속성에 대한 자세한 내용은 다음 가이드를 참조하세요.

정확히 일치 , 포함 , 포함하지 않음 또는 정규식 연산자를 사용하는 경우 여러 값을 선택할 수 있습니다.

정규식 연산자를 사용하면 RE2 형식의 정규식을 만들 수 있습니다. 정규식은 대상 버전 문자열의 전체 또는 일부와 일치할 수 있습니다. ^$ 앵커를 사용하여 대상 문자열의 시작, 끝 또는 전체를 일치시킬 수도 있습니다.

참고: 자동으로 수집된 사용자 속성은 현재 원격 구성 조건을 생성할 때 사용할 수 없습니다.
무작위 백분위수의 사용자 <=, > 0-100

이 필드를 사용하여 <=> 연산자를 사용하여 사용자(앱 인스턴스)를 그룹으로 분할하여 앱 인스턴스의 임의 샘플(샘플 크기가 .0001%로 작음)에 변경 사항을 적용합니다.

각 앱 인스턴스는 해당 프로젝트에 정의된 에 따라 임의의 정수 또는 분수에 지속적으로 매핑됩니다. 다른 키를 선택하거나 생성하지 않는 한 규칙은 기본 키(Firebase 콘솔에서 DEF 로 표시됨)를 사용합니다. 이 키를 사용하여 사용자 무작위화 필드를 선택 취소하여 기본 키를 사용하도록 규칙을 되돌릴 수 있습니다. 규칙 전체에서 단일 키를 사용하여 지정된 백분율 범위 내에서 동일한 앱 인스턴스를 일관되게 처리할 수 있습니다. 또는 새 키를 생성하여 주어진 백분율 범위에 대해 무작위로 할당된 새 앱 인스턴스 그룹을 선택할 수 있습니다.

예를 들어 앱 사용자의 겹치지 않는 5%에 각각 적용되는 두 개의 관련 조건을 만들려면 한 조건에는 <= 5% 규칙을 포함하고 다른 조건에는 > 5% 규칙과 <= 규칙을 모두 포함할 수 있습니다. 10% 규칙. 일부 사용자가 두 그룹에 무작위로 나타나도록 하려면 각 조건의 규칙에 서로 다른 키를 사용하십시오.

가져온 세그먼트 ~에 있다 가져온 세그먼트를 하나 이상 선택합니다. 이 규칙을 사용하려면 맞춤 가져온 세그먼트를 설정해야 합니다.
날짜 시간 전 후 장치 시간대 또는 "(GMT+11) 시드니 시간"과 같은 지정된 시간대의 지정된 날짜 및 시간. 현재 시간을 장치 가져오기 시간과 비교합니다.
처음 열다 전 후 지정된 시간대의 지정된 날짜 및 시간.

지정된 시간 범위 내에서 대상 앱을 처음 여는 사용자를 매칭합니다.

다음 SDK가 필요합니다.

  • Google 애널리틱스용 Firebase SDK
  • Apple 플랫폼 SDK v9.0.0+ 또는 Android SDK v21.1.1+(Firebase BoM v30.3.0+)

설치 ID ~에 있다 대상으로 하나 이상의 설치 ID(최대 50개)를 지정하십시오. 이 규칙은 해당 설치의 ID가 쉼표로 구분된 값 목록에 있는 경우 지정된 설치에 대해 true 로 평가됩니다.

설치 ID를 얻는 방법을 알아보려면 클라이언트 식별자 검색을 참조하십시오.

매개변수 및 조건 검색

원격 구성 매개변수 탭 상단에 있는 검색창을 사용하여 Firebase 콘솔 에서 프로젝트의 매개변수 키, 매개변수 값, 조건을 검색할 수 있습니다.

매개변수 및 조건에 대한 제한

Firebase 프로젝트 내에서 최대 2000개의 매개변수와 최대 500개의 조건을 가질 수 있습니다. 매개변수 키는 최대 256자까지 가능하며 밑줄 또는 영문자(AZ, az)로 시작해야 하며 숫자를 포함할 수도 있습니다. 프로젝트 내 매개변수 값 문자열의 총 길이는 1,000,000자를 초과할 수 없습니다.

매개변수 및 조건에 대한 변경 사항 보기

Firebase 콘솔 에서 원격 구성 템플릿의 최신 변경사항을 볼 수 있습니다. 각 개별 매개변수 및 조건에 대해 다음을 수행할 수 있습니다.

  • 매개변수 또는 조건을 마지막으로 수정한 사용자의 이름을 봅니다.

  • 같은 날에 변경이 발생한 경우 활성 원격 구성 템플릿에 변경이 게시된 이후 경과된 시간(분 또는 시간)을 확인합니다.

  • 하루 이상 지난 변경 사항이 발생한 경우 변경 사항이 활성 원격 구성 템플릿에 게시된 날짜를 확인합니다.

매개변수 업데이트

원격 구성 매개 변수 페이지의 마지막 게시 열에는 각 매개변수를 수정한 마지막 사용자와 변경 사항에 대한 마지막 게시 날짜가 표시됩니다.

  • 그룹화된 매개변수의 변경 메타데이터를 보려면 매개변수 그룹을 확장합니다.

  • 게시 날짜를 기준으로 오름차순 또는 내림차순으로 정렬하려면 마지막 게시 열 레이블을 클릭합니다.

조건 업데이트

원격 구성 조건 페이지에서 조건을 수정한 마지막 사용자와 각 조건 아래의 마지막으로 수정한 날짜 옆에서 조건을 수정한 날짜를 확인할 수 있습니다.

다음 단계

Firebase 프로젝트 구성을 시작하려면 Firebase 원격 구성 프로젝트 설정을 참조하세요.