Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Начать работу с Firebase Remote Config

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

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

  1. Установите Firebase SDK для iOS.

  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 и управления тем, когда полученные значения становятся доступными для вашего приложения.

Во время разработки рекомендуется установить относительно низкий минимальный интервал выборки. См. Раздел « Регулирование» для получения дополнительной информации.

Установить значения параметров по умолчанию в приложении

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

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

Быстрый

remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

Цель-C

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

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

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

Установить значения параметров

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

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

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

Чтобы получить значения параметров из 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) {
        // ...
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
    [self displayWelcome];
}];

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

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

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

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

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

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

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

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