Начало работы с Firebase Remote Config


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

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

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

  2. Для удаленной настройки требуется 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
    
  5. Если вы используете 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),
));

Объект-одиночка используется для хранения значений параметров по умолчанию в приложении, получения обновленных значений параметров из серверной части и управления тем, когда полученные значения становятся доступными для вашего приложения.

Во время разработки рекомендуется установить относительно небольшой минимальный интервал выборки. Дополнительную информацию см. в разделе Регулирование .

Шаг 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.

Обратите внимание, что 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-часового окна, независимо от того, сколько фактически выполненных вызовов выборки.

Если во время разработки приложения вы не используете Remote Config в реальном времени (что мы рекомендуем), вам может потребоваться очень часто (много раз в час) получать и активировать конфигурации, чтобы можно было быстро выполнять итерацию по мере разработки и тестирования приложения. Чтобы обеспечить быструю итерацию проекта с участием до 10 разработчиков, вы можете временно установить низкий минимальный интервал выборки с помощью setConfigSettings() .

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(minutes: 5),
));

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

Если вы еще этого не сделали, изучите варианты использования Remote Config и посмотрите на некоторые из ключевых концепций и документации «Расширенные стратегии», в том числе: