Check out what’s new from Firebase at Google I/O 2022. Learn more

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

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

Добавление и инициализация Удаленная настройка SDK

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

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

Веб - версия 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);

Веб - версия 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();

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

Установить минимальный размер выборки интервал

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

Web version 9

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web version 8

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Значения параметра умолчанию Установка в приложениях

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

Web version 9

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

Web version 8

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

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

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

Теперь вы можете получить значение параметров от удаленного объекта Config. Если позже установить значение в интерфейсе, за ними, а затем активировать их, эти значения доступны для вашего app.To получить эти значения, вызовите 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");

Заданные значения параметров

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

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

Fetch и активировать значение

  1. Для извлечения значения параметров из удаленного Config бэкэнда, вызовите fetchConfig() метод. Любые значения, установленные на внутреннем интерфейсе извлекаются и кэшируются в удаленном объекте 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) => {
    // ...
  });

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

Дроссельный

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

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

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

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

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

Если вы уже не имеете, изучить Удаленная настройка вариантов использования , и взглянуть на некоторые из ключевых концепций и передовых стратегий документации, в том числе: