Вы можете использовать Firebase Remote Config, чтобы определить параметры в своем приложении и обновить их значения в облаке, что позволит вам изменить внешний вид и поведение вашего приложения без распространения обновления приложения. В этом руководстве описаны шаги, необходимые для начала работы, и предоставлен пример кода, который можно клонировать или загрузить из репозитория GitHub firebase/quickstart-ios .
Шаг 1. Добавьте Remote Config в свое приложение.
Установите Firebase SDK для платформ Apple.
Создайте одноэлементный объект 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, и чтобы значения по умолчанию были доступны, если ни одно из них не установлено в серверной части.
Определите набор имен параметров и значений параметров по умолчанию, используя объект
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
На вкладке « Параметры » откройте меню « » и выберите « Загрузить значения по умолчанию ».
При появлении запроса включите .plist для iOS , затем нажмите « Загрузить файл ».
Добавьте эти значения в объект 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.
- В консоли Firebase откройте свой проект.
- Выберите Remote Config в меню, чтобы просмотреть панель управления Remote Config.
- Определите параметры с теми же именами, что и параметры, которые вы определили в своем приложении. Для каждого параметра вы можете установить значение по умолчанию (которое в конечном итоге переопределит значение по умолчанию в приложении), а также вы можете установить условные значения. Дополнительные сведения см. в разделе Параметры и условия удаленной конфигурации .
Шаг 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-часовое окно, независимо от того, сколько вызовов выборки фактически сделано. В частности, минимальный интервал выборки определяется в следующем порядке:
- Параметр в
fetch(long)
- Параметр в
FIRRemoteConfigSettings.MinimumFetchInterval
- Значение по умолчанию 12 часов.
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: