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