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