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

Выберите платформу: iOS+ Android Web Flutter Unity C++


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

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

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

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

Web

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

import firebase from "firebase/compat/app";
import "firebase/compat/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

// The default and recommended production fetch interval for Remote Config is 12 hours
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

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

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

Web

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

Web

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

Для генерации токена Bearer выполните следующую команду с помощью Google Cloud CLI или Cloud Shell :

gcloud auth print-access-token

Срок действия этого токена ограничен, поэтому в случае ошибки аутентификации может потребоваться его повторная генерация.

Консоль 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

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

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

Web

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

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

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

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

      let customSignals = {
         "city": "Tokyo",
         "preferred_event_category": "sports"
      }
    
      setCustomSignals(config, customSignals);

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

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

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

Web

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

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

Web

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

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

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

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

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

      onConfigUpdate(remoteConfig, {
         next: (configUpdate) => {
            console.log("Updated keys:", configUpdate.getUpdatedKeys());
            if (configUpdate.getUpdatedKeys().has("welcome_message")) {
               activate(remoteConfig).then(() => {
               showWelcomeMessage();
               });
            }
         },
         error: (error) => {
            console.log("Config update error:", error);
         },
         complete: () => {
            console.log("Listening stopped.");
         }
      });
  2. При следующей публикации новой версии вашего Remote Config устройства, на которых запущено ваше приложение и которые отслеживают изменения, вызовут обработчик завершения.

Регулирование скорости

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

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

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

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