Вы можете использовать Firebase Remote Config для определения параметров в вашем приложении и обновления их значений в облаке, что позволяет изменять внешний вид и поведение приложения без необходимости распространения обновления. Это руководство подробно описывает шаги для начала работы и предоставляет примеры кода, которые можно клонировать или скачать из репозитория firebase/quickstart-js на GitHub.
Шаг 1: Добавьте и инициализируйте Remote Config SDK
Если вы еще этого не сделали, установите Firebase JS SDK и инициализируйте Firebase .
Добавьте Remote Config JS SDK и инициализируйте 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
Консоль Firebase
- На вкладке «Параметры» откройте меню и выберите «Загрузить значения по умолчанию» .
- При появлении запроса включите .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 .
- В консоли Firebase откройте свой проект.
- Выберите Remote Config в меню, чтобы просмотреть панель управления Remote Config .
- Определите параметры с теми же именами, что и параметры, заданные в вашем приложении. Для каждого параметра можно задать значение по умолчанию (которое в конечном итоге переопределит значение по умолчанию в приложении), а также задать условные значения. Подробнее см. в разделе Параметры и условия Remote Config .
При использовании пользовательских условий сигнала определите атрибуты и их значения. В следующем примере показано, как определить пользовательское условие сигнала.
let customSignals = { "city": "Tokyo", "preferred_event_category": "sports" } setCustomSignals(config, customSignals);
Шаг 6: Извлечение и активация значений
- Чтобы получить значения параметров из бэкенда Remote Config , вызовите метод
fetchConfig()
. Все значения, заданные в бэкенде, извлекаются и кэшируются в объекте Remote Config . - Чтобы сделать извлеченные значения параметров доступными для вашего приложения, вызовите метод
activate()
.
В случаях, когда вы хотите извлечь и активировать значения за один вызов, используйте fetchAndActivate()
как показано в этом примере:
Web
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
Поскольку эти обновлённые значения параметров влияют на поведение и внешний вид вашего приложения, вам следует активировать полученные значения в момент, обеспечивающий бесперебойную работу пользователя, например, при следующем открытии приложения. Дополнительную информацию и примеры см. в разделе «Стратегии загрузки Remote Config».
Регулирование
Если приложение выполняет слишком много выборок за короткий промежуток времени, запросы на выборку могут быть ограничены. В таких случаях SDK выдаёт ошибку FETCH_THROTTLE
. Рекомендуется перехватить эту ошибку и повторить попытку в режиме экспоненциальной задержки, увеличивая интервалы ожидания между последующими запросами на выборку.
Во время разработки приложения может потребоваться обновлять кэш очень часто (несколько раз в час), чтобы обеспечить быструю итерацию в процессе разработки и тестирования приложения. Чтобы обеспечить быструю итерацию в проекте с большим количеством разработчиков, вы можете временно добавить в приложение свойство с низким минимальным интервалом выборки ( Settings.minimumFetchIntervalMillis
).
Рекомендуемый интервал выборки для Remote Config в рабочей среде по умолчанию составляет 12 часов. Это означает, что конфигурации не будут извлекаться из бэкенда чаще одного раза в течение 12-часового окна, независимо от фактического количества вызовов выборки. В частности, минимальный интервал выборки определяется в следующем порядке:
- Параметр в
Settings.minimumFetchIntervalMillis
. - Значение по умолчанию — 12 часов.
Следующие шаги
Если вы еще этого не сделали, изучите варианты использования Remote Config и посмотрите на некоторые из ключевых концепций и документации «Расширенные стратегии», в том числе: