Catch up on highlights from Firebase at Google I/O 2023. Learn more

Начните работу с Firebase Remote Config


Вы можете использовать Firebase Remote Config, чтобы определить параметры в своем приложении и обновить их значения в облаке, что позволит вам изменить внешний вид и поведение вашего приложения без распространения обновления приложения. В этом руководстве описаны шаги, необходимые для начала работы, и приведен пример кода.

Шаг 1. Добавьте Firebase и SDK Remote Config в свое приложение.

  1. Установите и инициализируйте пакеты Firebase SDK для Flutter, если вы еще этого не сделали.

  2. Для Remote Config требуется Google Analytics для условного таргетинга экземпляров приложений на пользовательские свойства и аудитории. Убедитесь, что вы включили Google Analytics в своем проекте.

  3. Из корневого каталога вашего проекта Flutter выполните следующую команду, чтобы установить плагин Remote Config:

    flutter pub add firebase_remote_config
    

    Кроме того, в рамках настройки Remote Config вам необходимо добавить в приложение Firebase SDK для Google Analytics:

    flutter pub add firebase_analytics
    
  4. Перестройте свой проект:

    flutter run
    

Шаг 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 для создания этих значений.

  1. В консоли Firebase откройте свой проект.
  2. Выберите Remote Config в меню, чтобы просмотреть панель управления Remote Config.
  3. Определите параметры с теми же именами, что и параметры, которые вы определили в своем приложении. Для каждого параметра вы можете установить значение по умолчанию (которое в конечном итоге переопределит соответствующее значение по умолчанию в приложении), а также вы можете установить условные значения. Дополнительные сведения см. в разделе Параметры и условия удаленной конфигурации .

Шаг 6: Получить и активировать значения

  1. Чтобы получить значения параметров из бэкенда Remote Config, вызовите метод fetch() . Любые значения, которые вы устанавливаете в бэкэнде, извлекаются и сохраняются в объекте Remote Config.

  2. Чтобы сделать извлеченные значения параметров доступными для вашего приложения, вызовите activate() .

    В случаях, когда вы хотите получить и активировать значения за один вызов, вы можете использовать запрос fetchAndActivate() для извлечения значений из бэкэнда Remote Config и сделать их доступными для приложения:

    await remoteConfig.fetchAndActivate();
    

Поскольку эти обновленные значения параметров влияют на поведение и внешний вид вашего приложения, вы должны активировать полученные значения в то время, когда это обеспечивает бесперебойную работу вашего пользователя, например, когда пользователь в следующий раз открывает ваше приложение. Дополнительную информацию и примеры см. в разделе Стратегии загрузки Remote Config .

Шаг 7. Следите за обновлениями в режиме реального времени

После получения значений параметров вы можете использовать Remote Config в режиме реального времени для прослушивания обновлений из серверной части Remote Config. Remote Config в режиме реального времени сигнализирует подключенным устройствам, когда доступны обновления, и автоматически извлекает изменения после публикации новой версии Remote Config.

Обратите внимание, что удаленная конфигурация в реальном времени недоступна для Интернета.

  1. В своем приложении используйте onConfigUpdated , чтобы начать прослушивание обновлений и автоматически получать любые новые значения параметров.

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. В следующий раз, когда вы опубликуете новую версию своей удаленной конфигурации, устройства, на которых запущено ваше приложение и ожидают изменений, активируют новую конфигурацию.

Дросселирование

Если приложение выполняет выборку слишком много раз за короткий промежуток времени, вызовы выборки будут регулироваться, а значением свойства 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),
));

Следующие шаги

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: