Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Начните работу с 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 .

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

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

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

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