| Выберите платформу: | iOS+ Android Web Flutter Unity C++ |
С помощью Firebase Remote Config вы можете определять параметры в своем приложении и обновлять их значения в облаке, что позволяет изменять внешний вид и поведение приложения без распространения обновлений. Это руководство шаг за шагом расскажет вам о начале работы и предоставит несколько примеров кода.
Шаг 1: Добавьте Firebase и SDK Remote Config в ваше приложение.
Установите и инициализируйте SDK Firebase для Flutter, если вы еще этого не сделали.
Для удаленной настройки требуется Google Analytics для условного таргетирования экземпляров приложения в соответствии со свойствами пользователей и аудиториями. Убедитесь, что Google Analytics включен в вашем проекте.
Для установки плагина Remote Config выполните следующую команду из корневого каталога вашего Flutter-проекта:
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 откройте свой проект.
- Чтобы просмотреть панель мониторинга удаленной конфигурации, выберите в меню пункт «Удаленная конфигурация» .
- Определите параметры с теми же именами, что и параметры, определенные в вашем приложении. Для каждого параметра вы можете установить значение по умолчанию (которое в конечном итоге переопределит соответствующее значение по умолчанию в приложении), а также задать условные значения. Для получения дополнительной информации см. раздел «Параметры и условия удаленной конфигурации» .
Шаг 6: Получение и активация значений
Для получения значений параметров из бэкэнда Remote Config вызовите метод
fetch(). Все значения, которые вы задали в бэкэнде, будут получены и сохранены в объекте Remote Config.Чтобы сделать полученные значения параметров доступными для вашего приложения, вызовите метод
activate().В случаях, когда вам необходимо получить и активировать значения за один вызов, вы можете использовать запрос
fetchAndActivate()для получения значений из бэкэнда Remote Config и предоставления их приложению:await remoteConfig.fetchAndActivate();
Поскольку эти обновленные значения параметров влияют на поведение и внешний вид вашего приложения, вам следует активировать полученные значения в такое время, которое обеспечит бесперебойную работу для пользователя, например, при следующем открытии приложения. См. раздел «Стратегии загрузки удаленной конфигурации» для получения дополнительной информации и примеров.
Шаг 7: Следите за обновлениями в режиме реального времени.
После получения значений параметров вы можете использовать функцию удаленной конфигурации в реальном времени для отслеживания обновлений от бэкэнда удаленной конфигурации. Функция удаленной конфигурации в реальном времени сообщает подключенным устройствам о наличии обновлений и автоматически получает изменения после публикации новой версии удаленной конфигурации.
Обратите внимание, что функция удаленной настройки в режиме реального времени недоступна для веб-версии.
В вашем приложении используйте
onConfigUpdated, чтобы начать отслеживать обновления и автоматически получать все новые значения параметров.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });При следующей публикации новой версии вашей удаленной конфигурации устройства, на которых запущено ваше приложение и которые отслеживают изменения, активируют новую конфигурацию.
Регулирование скорости
Если приложение выполняет слишком много запросов за короткий промежуток времени, количество таких запросов будет ограничено, и значение свойства lastFetchStatus объекта FirebaseRemoteConfig будет RemoteConfigFetchStatus.throttle .
По умолчанию минимальный интервал получения данных для удаленной конфигурации составляет 12 часов, что означает, что конфигурации не будут получаться из бэкэнда более одного раза в течение 12 часов, независимо от того, сколько запросов на получение данных будет фактически выполнено.
В процессе разработки приложения, если вы не используете удаленную конфигурацию в реальном времени (что мы рекомендуем), вам может потребоваться очень часто (много раз в час) получать и активировать конфигурации, чтобы быстро вносить изменения в процессе разработки и тестирования приложения. Для обеспечения быстрой итерации в проекте с участием до 10 разработчиков вы можете временно установить низкий минимальный интервал получения данных с помощью setConfigSettings() .
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));