Вы можете использовать Firebase Remote Config для определения параметров в вашем приложении и обновления их значений в облаке, что позволяет изменять внешний вид и поведение приложения без необходимости распространения обновления. Это руководство подробно описывает шаги для начала работы и предоставляет примеры кода.
Шаг 1: Добавьте Firebase и Remote Config SDK в свое приложение
Установите и инициализируйте Firebase SDKs для 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
Если вы используете Remote Config в macOS, включите функцию Keychain Sharing в Xcode.
Шаг 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 и посмотрите на некоторые из ключевых концепций и документации «Расширенные стратегии», в том числе: