Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.


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

Шаг 1. Добавьте и инициализируйте SDK Remote Config.

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

  2. Добавьте SDK Remote Config JS и инициализируйте Remote Config:

Web version 9

import { initializeApp } from "firebase/app";
import { getRemoteConfig } from "firebase/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = getRemoteConfig(app);

Web version 8

import firebase from "firebase/app";
import "firebase/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = firebase.remoteConfig();

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

Шаг 2. Установите минимальный интервал выборки.

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

Web version 9

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web version 8

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Шаг 3. Установите значения параметров по умолчанию в приложении

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

Web version 9

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

Web version 8

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

Если вы уже настроили значения внутренних параметров Remote Config, вы можете загрузить сгенерированный файл JSON, который включает все значения по умолчанию, и включить его в свой пакет приложений:

ОТДЫХАТЬ

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=JSON -o remote_config_defaults.json

Консоль Firebase

  1. На вкладке « Параметры » откройте меню « » и выберите « Загрузить значения по умолчанию ».
  2. При появлении запроса включите .json для Интернета , затем нажмите « Загрузить файл » .

В следующих примерах показаны два разных способа импорта и установки значений по умолчанию в вашем приложении. В первом примере используется fetch , который отправляет HTTP-запрос к файлу настроек по умолчанию, включенному в комплект вашего приложения:


  const rcDefaultsFile = await fetch('remote_config_defaults.json');
  const rcDefaultsJson = await rcDefaultsFile.json();
  remoteConfig.defaultConfig = rcDefaultsJson;
  

В следующем примере используется require , который компилирует значения в ваше приложение во время сборки:

  let rcDefaults = require('./remote_config_defaults.json');
  remoteConfig.defaultConfig = rcDefaults;

Шаг 4. Получите значения параметров для использования в приложении

Теперь вы можете получить значения параметров из объекта Remote Config. Если позже вы установите значения в серверной части, получите их, а затем активируете, эти значения будут доступны вашему приложению. Чтобы получить эти значения, вызовите метод getValue() , указав ключ параметра в качестве аргумента.

Web version 9

import { getValue } from "firebase/remote-config";

const val = getValue(remoteConfig, "welcome_messsage");

Web version 8

const val = remoteConfig.getValue("welcome_messsage");

Шаг 5: Установите значения параметров

Используя консоль Firebase или внутренние API-интерфейсы Remote Config , вы можете создавать новые значения по умолчанию на стороне сервера, которые переопределяют значения в приложении в соответствии с желаемой условной логикой или пользовательским таргетингом. В этом разделе вы узнаете, как создать эти значения в консоли Firebase.

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

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

  1. Чтобы получить значения параметров из бэкэнда Remote Config, вызовите метод fetchConfig() . Любые значения, которые вы устанавливаете на серверной части, извлекаются и кэшируются в объекте Remote Config.
  2. Чтобы сделать извлеченные значения параметров доступными для вашего приложения, вызовите activate() .

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

Web version 9

import { fetchAndActivate } from "firebase/remote-config";

fetchAndActivate(remoteConfig)
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

Web version 8

remoteConfig.fetchAndActivate()
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

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

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

Если приложение выполняет выборку слишком много раз за короткий период времени, вызовы выборки могут быть ограничены. В таких случаях SDK выдает ошибку FETCH_THROTTLE . Рекомендуется перехватить эту ошибку и повторить попытку в режиме экспоненциальной отсрочки, ожидая более длительные интервалы между последующими запросами на выборку.

Во время разработки приложения может потребоваться очень частое обновление кеша (много раз в час), чтобы обеспечить быструю итерацию при разработке и тестировании приложения. Чтобы обеспечить быструю итерацию проекта с многочисленными разработчиками, вы можете временно добавить в свое приложение свойство с низким минимальным интервалом выборки ( Settings.minimumFetchIntervalMillis ).

По умолчанию и рекомендуемый интервал выборки рабочей среды для Remote Config составляет 12 часов, что означает, что конфигурации не будут извлекаться из серверной части более одного раза в 12-часовое окно, независимо от того, сколько вызовов выборки фактически сделано. В частности, минимальный интервал выборки определяется в следующем порядке:

  1. Параметр в Settings.minimumFetchIntervalMillis .
  2. Значение по умолчанию 12 часов.

Next steps

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: