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

Firebase 원격 구성 시작하기

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


Firebase 원격 구성을 사용하여 앱에서 매개변수를 정의하고 클라우드에서 해당 값을 업데이트할 수 있으므로 앱 업데이트를 배포하지 않고도 앱의 모양과 동작을 수정할 수 있습니다. 이 가이드는 시작 단계를 안내하고 몇 가지 샘플 코드를 제공합니다. 모두 firebase/quickstart-ios GitHub 저장소에서 복제하거나 다운로드할 수 있습니다.

1단계: 앱에 원격 구성 추가

  1. Apple 플랫폼용 Firebase SDK를 설치합니다 .

  2. 다음 예와 같이 싱글톤 원격 구성 개체를 만듭니다.

    빠른

    remoteConfig = RemoteConfig.remoteConfig()
    let settings = RemoteConfigSettings()
    settings.minimumFetchInterval = 0
    remoteConfig.configSettings = settings

    목표-C

    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init];
    remoteConfigSettings.minimumFetchInterval = 0;
    self.remoteConfig.configSettings = remoteConfigSettings;

이 개체는 인앱 기본 매개변수 값을 저장하고, 원격 구성 백엔드에서 업데이트된 매개변수 값을 가져오고, 가져온 값을 앱에서 사용할 수 있는 시기를 제어하는 ​​데 사용됩니다.

개발 중에는 최소 가져오기 간격을 상대적으로 낮게 설정하는 것이 좋습니다. 자세한 내용은 스로틀링 을 참조하십시오.

2단계: 인앱 기본 매개변수 값 설정

앱이 원격 구성 백엔드에 연결되기 전에 의도한 대로 작동하고 백엔드에 아무것도 설정되지 않은 경우 기본값을 사용할 수 있도록 원격 구성 개체에서 인앱 기본 매개변수 값을 설정할 수 있습니다.

  1. NSDictionary 객체 또는 plist 파일 을 사용하여 매개변수 이름 세트와 기본 매개변수 값을 정의합니다.

    원격 구성 백엔드 매개변수 값을 이미 구성한 경우 모든 기본값을 포함하는 생성된 plist 파일을 다운로드하여 Xcode 프로젝트에 저장할 수 있습니다.

    쉬다

    curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=PLIST -o RemoteConfigDefaults.plist
    

    Firebase 콘솔

    1. 매개변수 탭에서 메뉴 를 열고 기본값 다운로드 를 선택합니다.

    2. 메시지가 표시되면 iOS용 .plist를 활성화한 다음 파일 다운로드 를 클릭합니다.

  2. setDefaults: 를 사용하여 원격 구성 개체에 이 값을 추가합니다. 다음 예시는 plist 파일에서 인앱 기본값을 설정합니다.

    빠른

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    목표-C

    [self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];

3단계: 앱에서 사용할 매개변수 값 가져오기

이제 원격 구성 개체에서 매개변수 값을 가져올 수 있습니다. 나중에 원격 구성 백엔드에서 값을 설정하고 가져온 다음 활성화하면 해당 값을 앱에서 사용할 수 있습니다. 그렇지 않으면 setDefaults: 를 사용하여 구성된 인앱 매개변수 값을 가져옵니다. 이러한 값을 가져오려면 매개변수 키를 인수로 제공하여 configValueForKey: 메소드를 호출하십시오.

4단계: 매개변수 값 설정

Firebase 콘솔 또는 원격 구성 백엔드 API 를 사용하여 원하는 조건부 논리 또는 사용자 타겟팅에 따라 인앱 값을 재정의하는 새로운 백엔드 기본값을 만들 수 있습니다. 이 섹션에서는 이러한 값을 생성하는 Firebase 콘솔 단계를 안내합니다.

  1. Firebase 콘솔 에서 프로젝트를 엽니다.
  2. 원격 구성 대시보드를 보려면 메뉴에서 원격 구성 을 선택합니다.
  3. 앱에서 정의한 매개변수와 이름이 같은 매개변수를 정의합니다. 각 매개변수에 대해 기본값(결국 인앱 기본값을 재정의함)을 설정할 수 있으며 조건부 값도 설정할 수 있습니다. 자세한 내용은 원격 구성 매개변수 및 조건 을 참조하십시오.

5단계: 값 가져오기 및 활성화

원격 구성에서 매개변수 값을 가져오려면 fetchWithCompletionHandler: 또는 fetchWithExpirationDuration:completionHandler: 메소드를 호출하세요. 백엔드에서 설정한 모든 값은 원격 구성 개체에서 가져와 캐시됩니다.

한 번의 호출로 값을 가져오고 활성화하려는 경우에는 fetchAndActivateWithCompletionHandler: 를 사용하세요.

이 예시는 원격 구성 백엔드에서 값(캐시된 값 아님)을 가져오고 activateWithCompletionHandler: 를 호출하여 앱에서 사용할 수 있도록 합니다.

빠른

remoteConfig.fetch { (status, error) -> Void in
  if status == .success {
    print("Config fetched!")
    self.remoteConfig.activate { changed, error in
      // ...
    }
  } else {
    print("Config not fetched")
    print("Error: \(error?.localizedDescription ?? "No error available.")")
  }
  self.displayWelcome()
}

목표-C

[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
    if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
      [self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
        if (error != nil) {
          NSLog(@"Activate error: %@", error.localizedDescription);
        } else {
          dispatch_async(dispatch_get_main_queue(), ^{
            [self displayWelcome];
          });
        }
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
}];

이러한 업데이트된 매개변수 값은 앱의 동작과 모양에 영향을 미치기 때문에 다음에 사용자가 앱을 열 때와 같이 사용자에게 원활한 경험을 제공할 수 있는 시간에 가져온 값을 활성화해야 합니다. 자세한 내용과 예시는 원격 구성 로딩 전략 을 참조하세요.

쓰로틀링

앱이 단기간에 너무 많이 가져오면 가져오기 호출이 제한되고 SDK가 FIRRemoteConfigFetchStatusThrottled 를 반환합니다. SDK 버전 6.3.0 이전에는 한도가 60분 창에서 5개의 가져오기 요청이었습니다(최신 버전에는 더 많은 허용 한도가 있음).

앱을 개발하는 동안 앱을 개발하고 테스트하면서 빠르게 반복할 수 있도록 캐시를 매우 자주(시간당 여러 번) 새로 고칠 수 있습니다. To accommodate rapid iteration on a project with numerous developers, you can temporarily add a FIRRemoteConfigSettings property with a low minimum fetch interval ( MinimumFetchInterval ) in your app.

The default and recommended production fetch interval for Remote Config is 12 hours, which means that configs won't be fetched from the backend more than once in a 12 hour window, regardless of how many fetch calls are actually made. Specifically, the minimum fetch interval is determined in this following order:

  1. The parameter in fetch(long)
  2. The parameter in FIRRemoteConfigSettings.MinimumFetchInterval
  3. The default value of 12 hours

Next steps

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: