Вы можете использовать Firebase Remote Config, чтобы определить параметры в своем приложении и обновить их значения в облаке, что позволит вам изменить внешний вид и поведение вашего приложения без распространения обновления приложения. В этом руководстве описаны шаги, необходимые для начала работы, и приведен пример кода.
Шаг 1. Добавьте Firebase и SDK Remote Config в свое приложение.
Установите и инициализируйте пакеты Firebase SDK для Flutter, если вы еще этого не сделали.
Для Remote Config требуется Google Analytics для условного таргетинга экземпляров приложений на пользовательские свойства и аудитории. Убедитесь, что вы включили Google Analytics в своем проекте.
Из корневого каталога вашего проекта Flutter выполните следующую команду, чтобы установить плагин Remote Config:
flutter pub add firebase_remote_config
Кроме того, в рамках настройки Remote Config вам необходимо добавить в приложение Firebase SDK для Google Analytics:
flutter pub add firebase_analytics
Перестройте свой проект:
flutter run
Шаг 2. Получите одноэлементный объект Remote Config
Получите экземпляр объекта Remote Config и установите минимальный интервал выборки, чтобы обеспечить частые обновления:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
Объект singleton используется для хранения значений параметров по умолчанию в приложении, извлечения обновленных значений параметров из серверной части и управления тем, когда извлеченные значения становятся доступными для вашего приложения.
Во время разработки рекомендуется установить относительно низкий минимальный интервал выборки. Дополнительную информацию см. в разделе Дросселирование .
Шаг 3. Установите значения параметров по умолчанию в приложении
Вы можете установить значения параметров по умолчанию в приложении в объекте Remote Config, чтобы ваше приложение вело себя должным образом, прежде чем оно подключится к серверной части Remote Config, и чтобы значения по умолчанию были доступны, если ни одно из них не установлено в серверной части.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
Шаг 4. Получите значения параметров для использования в приложении
Теперь вы можете получить значения параметров из объекта Remote Config. Если вы устанавливаете значения в бэкэнде, извлекаете их, а затем активируете, эти значения становятся доступными для вашего приложения. В противном случае вы получите значения параметров в приложении, настроенные с помощью setDefaults()
.
Чтобы получить эти значения, вызовите метод, указанный ниже, который сопоставляется с типом данных, ожидаемым вашим приложением, указав ключ параметра в качестве аргумента:
-
getBool()
-
getDouble()
-
getInt()
-
getString()
Шаг 5. Задайте значения параметров в бэкэнде Remote Config.
Используя консоль Firebase или внутренние API-интерфейсы Remote Config , вы можете создавать новые значения по умолчанию на стороне сервера, которые переопределяют значения в приложении в соответствии с желаемой условной логикой или пользовательским таргетингом. В этом разделе описываются шаги консоли Firebase для создания этих значений.
- В консоли Firebase откройте свой проект.
- Выберите Remote Config в меню, чтобы просмотреть панель управления Remote Config.
- Определите параметры с теми же именами, что и параметры, которые вы определили в своем приложении. Для каждого параметра вы можете установить значение по умолчанию (которое в конечном итоге переопределит соответствующее значение по умолчанию в приложении), а также вы можете установить условные значения. Дополнительные сведения см. в разделе Параметры и условия удаленной конфигурации .
Шаг 6: Получить и активировать значения
Чтобы получить значения параметров из бэкенда Remote Config, вызовите метод
fetch()
. Любые значения, которые вы устанавливаете в бэкэнде, извлекаются и сохраняются в объекте Remote Config.Чтобы сделать извлеченные значения параметров доступными для вашего приложения, вызовите
activate()
.В случаях, когда вы хотите получить и активировать значения за один вызов, вы можете использовать запрос
fetchAndActivate()
для извлечения значений из бэкэнда Remote Config и сделать их доступными для приложения:await remoteConfig.fetchAndActivate();
Поскольку эти обновленные значения параметров влияют на поведение и внешний вид вашего приложения, вы должны активировать полученные значения в то время, когда это обеспечивает бесперебойную работу вашего пользователя, например, когда пользователь в следующий раз открывает ваше приложение. Дополнительную информацию и примеры см. в разделе Стратегии загрузки Remote Config .
Шаг 7. Следите за обновлениями в режиме реального времени
После получения значений параметров вы можете использовать Remote Config в режиме реального времени для прослушивания обновлений из серверной части Remote Config. Remote Config в режиме реального времени сигнализирует подключенным устройствам, когда доступны обновления, и автоматически извлекает изменения после публикации новой версии Remote Config.
Обратите внимание, что удаленная конфигурация в реальном времени недоступна для Интернета.
В своем приложении используйте
onConfigUpdated
, чтобы начать прослушивание обновлений и автоматически получать любые новые значения параметров.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
В следующий раз, когда вы опубликуете новую версию своей удаленной конфигурации, устройства, на которых запущено ваше приложение и ожидают изменений, активируют новую конфигурацию.
Дросселирование
Если приложение выполняет выборку слишком много раз за короткий промежуток времени, вызовы выборки будут регулироваться, а значением свойства lastFetchStatus
FirebaseRemoteConfig
RemoteConfigFetchStatus.throttle
.
Минимальный интервал выборки по умолчанию для Remote Config составляет 12 часов, что означает, что конфигурации не будут извлекаться из серверной части более одного раза в 12-часовое окно, независимо от того, сколько вызовов выборки фактически сделано.
Во время разработки приложения, если вы не используете удаленную настройку в реальном времени (которую мы рекомендуем), вы можете захотеть получать и активировать конфигурации очень часто (много раз в час), чтобы обеспечить быструю итерацию при разработке и тестировании приложения. Чтобы обеспечить быструю итерацию в проекте с участием до 10 разработчиков, вы можете временно установить низкий минимальный интервал выборки с помощью setConfigSettings()
.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
Следующие шаги
Если вы еще этого не сделали, изучите варианты использования Remote Config и ознакомьтесь с некоторыми ключевыми концепциями и документацией по расширенным стратегиям, в том числе: