Вы можете использовать Firebase Remote Config для определения параметров в вашем приложении и обновления их значений в облаке, что позволяет вам изменять внешний вид и поведение вашего приложения без распространения обновления приложения. В этом руководстве описаны шаги, необходимые для начала работы, и представлен пример кода.
Шаг 1. Добавьте Firebase и SDK Remote Config в свое приложение.
Установите и инициализируйте Firebase SDK для Flutter, если вы еще этого не сделали.
Для удаленной настройки требуется 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
Если вы используете Remote Config в macOS, включите общий доступ к цепочке ключей в Xcode.
Шаг 2. Получите одноэлементный объект Remote Config.
Получите экземпляр объекта Remote Config и установите минимальный интервал выборки, чтобы обеспечить частые обновления:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
Объект-одиночка используется для хранения значений параметров по умолчанию в приложении, получения обновленных значений параметров из серверной части и управления тем, когда полученные значения становятся доступными для вашего приложения.
Во время разработки рекомендуется установить относительно небольшой минимальный интервал выборки. Дополнительную информацию см. в разделе Регулирование .
Шаг 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.
Обратите внимание, что 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-часового окна, независимо от того, сколько фактически выполненных вызовов выборки.
Если во время разработки приложения вы не используете Remote Config в реальном времени (что мы рекомендуем), вам может потребоваться очень часто (много раз в час) получать и активировать конфигурации, чтобы можно было быстро выполнять итерацию по мере разработки и тестирования приложения. Чтобы обеспечить быструю итерацию проекта с участием до 10 разработчиков, вы можете временно установить низкий минимальный интервал выборки с помощью setConfigSettings()
.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
Следующие шаги
Если вы еще этого не сделали, изучите варианты использования Remote Config и посмотрите на некоторые из ключевых концепций и документации «Расширенные стратегии», в том числе: