| Выберите платформу: | iOS+ Android Веб Flutter Unity C++ |
С помощью Firebase Remote Config можно задавать параметры в приложении и обновлять их значения в облаке, чтобы изменять внешний вид и поведение приложения без выпуска обновлений. В этом руководстве рассказывается, как начать работу с API и приведены примеры кода.
Шаг 1. Добавьте в приложение Firebase и Remote Config SDK
Установите и инициализируйте Firebase SDK для Flutter, если вы ещё этого не сделали.
Для Remote Config необходимо использовать Google Аналитику, чтобы реализовать условный таргетинг экземпляров приложения на свойства пользователей и аудитории. Убедитесь, что в вашем проекте включена Google Аналитика.
В корневом каталоге проекта Flutter выполните следующую команду, чтобы установить плагин Remote Config:
flutter pub add firebase_remote_configКроме того, при настройке Remote Config необходимо добавить в приложение Firebase SDK для Google Аналитики:
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 выберите DevOps & Engagement (DevOps и взаимодействие) > 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. });Когда вы опубликуете новую версию Remote Config, устройства, на которых запущено ваше приложение и отслеживаются изменения, активируют новую конфигурацию.
Ограничение пропускной способности
Если приложение слишком часто выполняет выборку за короткий период времени, вызовы выборки будут ограничены, а значение свойства 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),
));