Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Начните работу с Firebase Remote Config

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.


Вы можете использовать Firebase Remote Config, чтобы определить параметры в своем приложении и обновить их значения в облаке, что позволит вам изменить внешний вид и поведение вашего приложения без распространения обновления приложения. В этом руководстве описаны шаги, необходимые для начала работы, и предоставлен пример кода, который можно клонировать или загрузить из репозитория GitHub firebase/quickstart-ios .

Шаг 1. Добавьте Remote Config в свое приложение.

  1. Установите Firebase SDK для платформ Apple.

  2. Создайте одноэлементный объект Remote Config, как показано в следующем примере:

    Быстрый

    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;

Этот объект используется для хранения значений параметров по умолчанию в приложении, извлечения обновленных значений параметров из бэкэнда Remote Config и управления тем, когда полученные значения становятся доступными для вашего приложения.

Во время разработки рекомендуется установить относительно низкий минимальный интервал выборки. Дополнительную информацию см. в разделе Дросселирование .

Шаг 2. Установите значения параметров по умолчанию в приложении

Вы можете установить значения параметров по умолчанию в приложении в объекте Remote Config, чтобы ваше приложение вело себя должным образом, прежде чем оно подключится к серверной части Remote Config, и чтобы значения по умолчанию были доступны, если ни одно из них не установлено в серверной части.

  1. Определите набор имен параметров и значений параметров по умолчанию, используя объект NSDictionary или файл plist.

    Если вы уже настроили значения внутренних параметров Remote Config, вы можете загрузить сгенерированный файл 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. При появлении запроса включите .plist для iOS , затем нажмите « Загрузить файл ».

  2. Добавьте эти значения в объект Remote Config с помощью setDefaults: . В следующем примере устанавливаются значения по умолчанию в приложении из файла plist:

    Быстрый

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    Цель-C

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

Шаг 3. Получите значения параметров для использования в приложении

Теперь вы можете получить значения параметров из объекта Remote Config. Если позже вы зададите значения в бэкэнде Remote Config, извлечете их, а затем активируете, эти значения станут доступны вашему приложению. В противном случае вы получите значения параметров в приложении, настроенные с помощью setDefaults: . Чтобы получить эти значения, вызовите метод configValueForKey: ключ параметра в качестве аргумента.

Шаг 4: Установите значения параметров

Используя консоль Firebase или внутренние API-интерфейсы Remote Config , вы можете создавать новые внутренние значения по умолчанию, которые переопределяют значения в приложении в соответствии с желаемой условной логикой или пользовательским таргетингом. В этом разделе вы узнаете, как создать эти значения в консоли Firebase.

  1. В консоли Firebase откройте свой проект.
  2. Выберите Remote Config в меню, чтобы просмотреть панель управления Remote Config.
  3. Определите параметры с теми же именами, что и параметры, которые вы определили в своем приложении. Для каждого параметра вы можете установить значение по умолчанию (которое в конечном итоге переопределит значение по умолчанию в приложении), а также вы можете установить условные значения. Дополнительные сведения см. в разделе Параметры и условия удаленной конфигурации .

Шаг 5: Получить и активировать значения

Чтобы получить значения параметров из Remote Config, вызовите метод fetchWithCompletionHandler: или fetchWithExpirationDuration:completionHandler: Любые значения, которые вы устанавливаете на серверной части, извлекаются и кэшируются в объекте Remote Config.

В случаях, когда вы хотите получить и активировать значения за один вызов, используйте fetchAndActivateWithCompletionHandler: .

В этом примере значения извлекаются из серверной части Remote Config (не кэшированные значения) и вызывается 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);
    }
}];

Поскольку эти обновленные значения параметров влияют на поведение и внешний вид вашего приложения, вы должны активировать полученные значения в то время, когда это обеспечивает бесперебойную работу вашего пользователя, например, когда пользователь в следующий раз открывает ваше приложение. Дополнительную информацию и примеры см. в разделе Стратегии загрузки Remote Config .

Дросселирование

Если приложение выполняет выборку слишком много раз за короткий промежуток времени, вызовы выборки регулируются, и SDK возвращает FIRRemoteConfigFetchStatusThrottled . До версии SDK 6.3.0 ограничение составляло 5 запросов на выборку в 60-минутном окне (более новые версии имеют более строгие ограничения).

Во время разработки приложения может потребоваться очень частое обновление кеша (много раз в час), чтобы обеспечить быструю итерацию при разработке и тестировании приложения. Чтобы обеспечить быструю итерацию проекта с многочисленными разработчиками, вы можете временно добавить в свое приложение свойство FIRRemoteConfigSettings с низким минимальным интервалом выборки ( MinimumFetchInterval ).

По умолчанию и рекомендуемый рабочий интервал выборки для Remote Config составляет 12 часов, что означает, что конфигурации не будут извлекаться из серверной части более одного раза в 12-часовое окно, независимо от того, сколько вызовов выборки фактически сделано. В частности, минимальный интервал выборки определяется в следующем порядке:

  1. Параметр в fetch(long)
  2. Параметр в FIRRemoteConfigSettings.MinimumFetchInterval
  3. Значение по умолчанию 12 часов.

Следующие шаги

Если вы еще этого не сделали, изучите примеры использования Remote Config и ознакомьтесь с некоторыми ключевыми концепциями и документацией по расширенным стратегиям, в том числе: