Вы можете использовать Firebase Remote Config для определения параметров в вашем приложении и обновления их значений в облаке, что позволяет изменять внешний вид и поведение вашего приложения без распространения обновления приложения.
В этом руководстве представлены пошаговые инструкции по началу работы и несколько примеров кода, которые можно клонировать или загрузить из репозитория firebase / quickstart-ios на GitHub.
Добавьте Remote Config в свое приложение
Установите Firebase SDK для iOS.
Создайте одноэлементный объект 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, и чтобы значения по умолчанию были доступны, если они не установлены в серверной части.
- Определите набор имен параметров и значения параметров по умолчанию, используя объект NSDictionary или файл plist .
- Добавьте эти значения в объект Remote Config с помощью setDefaults:. В следующем примере устанавливаются значения по умолчанию в приложении из файла
plist
:
Быстрый
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
Цель-C
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
Получите значения параметров для использования в вашем приложении
Теперь вы можете получать значения параметров из объекта Remote Config. Если вы позже установите значения в бэкэнде Remote Config, получите их, а затем активируете, эти значения будут доступны вашему приложению. В противном случае вы получите значения параметров в приложении, настроенные с помощью setDefaults:. Чтобы получить эти значения, вызовите метод configValueForKey :, указав ключ параметра в качестве аргумента.
Установить значения параметров
Используя консоль Firebase или API серверной части Remote Config , вы можете создавать новые значения по умолчанию для серверной части, которые переопределяют значения в приложении в соответствии с желаемой условной логикой или таргетингом на пользователя. В этом разделе описаны шаги консоли Firebase для создания этих значений.
- В консоли Firebase откройте свой проект.
- Выберите Remote Config из меню, чтобы просмотреть панель Remote Config.
- Определите параметры с теми же именами, что и параметры, которые вы определили в своем приложении. Для каждого параметра вы можете установить значение по умолчанию (которое в конечном итоге переопределит значение по умолчанию в приложении), а также вы можете установить условные значения. Чтобы узнать больше, см. Параметры и условия удаленной конфигурации .
Получение и активация значений
Чтобы получить значения параметров из Remote Config, вызовите метод fetchWithCompletionHandler: или fetchWithExpirationDuration: ЗавершениеHandler : . Любые значения, которые вы устанавливаете на серверной части, извлекаются и кэшируются в объекте 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-часовом окне, независимо от того, сколько вызовов выборки фактически сделано. В частности, минимальный интервал выборки определяется в следующем порядке:
- Параметр в
fetch(long)
- Параметр в
FIRRemoteConfigSettings.MinimumFetchInterval
- Значение по умолчанию 12 часов.
Следующие шаги
Если вы еще этого не сделали, изучите варианты использования Remote Config и ознакомьтесь с некоторыми ключевыми концепциями и документацией по расширенным стратегиям, в том числе: