Настройка шаблонов с использованием Admin SDK, REST API и Firebase CLI. page_type: guide
В этом документе описывается, как программно считывать и изменять набор параметров и условий в формате JSON, известных как шаблон Remote Config . Это позволяет вносить изменения в шаблон на бэкэнде, которые клиентское приложение может получить с помощью клиентской библиотеки.
Используя REST API Remote Config , Admin SDK или CLI Firebase , описанные в этом руководстве, вы можете обойтись без управления шаблоном в консоли Firebase и напрямую интегрировать изменения Remote Config в свои собственные процессы. Например, с помощью бэкэнд-API Remote Config вы можете:
- Планируйте обновления Remote Config . Используя вызовы API в сочетании с заданием cron, вы можете изменять значения Remote Config по расписанию.
- Пакетный импорт значений конфигурации позволит эффективно перейти с вашей собственной проприетарной системы на Firebase Remote Config .
- Используйте Remote Config с Cloud Functions for Firebase , изменяя значения в вашем приложении на основе событий, происходящих на стороне сервера. Например, вы можете использовать Remote Config для продвижения новой функции в вашем приложении, а затем автоматически отключить это продвижение, как только обнаружите, что достаточное количество людей взаимодействовало с новой функцией.

В следующих разделах данного руководства описаны операции, которые можно выполнять с помощью API-интерфейсов бэкэнда Remote Config .
Изменение Remote Config с помощью Firebase Admin SDK
Admin SDK — это набор серверных библиотек, позволяющих взаимодействовать с Firebase из привилегированных сред. Помимо обновления Remote Config , Admin SDK обеспечивает генерацию и проверку токенов аутентификации Firebase, а также чтение и запись из Realtime Database . Подробнее о предварительных требованиях и настройке Admin SDK см. в разделе «Добавление Firebase Admin SDK на ваш сервер» .
Чтобы ознакомиться с примерами кода, выполняющими эти задачи с помощью Admin SDK , см. одно из следующих приложений для быстрого запуска:
- Быстрый старт Firebase Remote Config Java
- Быстрый старт Firebase Remote Config Node.js
- Быстрый старт Firebase Remote Config на Python
В типичном процессе Remote Config вы можете получить текущий шаблон, изменить некоторые параметры или группы параметров и условия, проверить шаблон, а затем опубликовать его. Перед выполнением этих вызовов API необходимо авторизовать запросы из SDK.
Инициализируйте SDK и авторизуйте запросы к API.
При инициализации Admin SDK без параметров, SDK использует учетные данные Google Application Default Credentials и считывает параметры из переменной среды FIREBASE_CONFIG . Если содержимое переменной FIREBASE_CONFIG начинается с { , оно будет интерпретировано как объект JSON. В противном случае SDK предполагает, что строка является именем файла JSON, содержащего параметры.
Например:
Node.js
const admin = require('firebase-admin'); admin.initializeApp();
Java
FileInputStream serviceAccount = new FileInputStream("service-account.json"); FirebaseOptions options = FirebaseOptions.builder() .setCredentials(GoogleCredentials.fromStream(serviceAccount)) .build(); FirebaseApp.initializeApp(options);
Получите текущий шаблон Remote Config
При работе с шаблонами Remote Config следует помнить, что они версионированы, и каждая версия имеет ограниченный срок действия с момента ее создания до момента замены обновлением: 90 дней, с общим лимитом в 300 сохраненных версий. Дополнительную информацию см. в разделе «Шаблоны и версионирование» .
Вы можете использовать API бэкэнда для получения текущей активной версии шаблона Remote Config в формате JSON.
Параметры и значения параметров, созданные специально в качестве вариантов в эксперименте A/B Testing не включаются в экспортируемые шаблоны.
Чтобы получить шаблон:
Node.js
function getTemplate() { var config = admin.remoteConfig(); config.getTemplate() .then(function (template) { console.log('ETag from server: ' + template.etag); var templateStr = JSON.stringify(template); fs.writeFileSync('config.json', templateStr); }) .catch(function (err) { console.error('Unable to get template'); console.error(err); }); }
Java
Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get(); // See the ETag of the fetched template. System.out.println("ETag from server: " + template.getETag());
Изменение параметров Remote Config
Вы можете программно изменять и добавлять параметры и группы параметров Remote Config . Например, к существующей группе параметров с именем "new_menu" можно добавить параметр для управления отображением сезонной информации:
Node.js
function addParameterToGroup(template) { template.parameterGroups['new_menu'].parameters['spring_season'] = { defaultValue: { useInAppDefault: true }, description: 'spring season menu visibility.', }; }
Java
template.getParameterGroups().get("new_menu").getParameters() .put("spring_season", new Parameter() .setDefaultValue(ParameterValue.inAppDefault()) .setDescription("spring season menu visibility.") );
API позволяет создавать новые параметры и группы параметров, а также изменять значения по умолчанию, условные значения и описания. Во всех случаях после внесения изменений необходимо явно опубликовать шаблон.
Изменение условий Remote Config
Вы можете программно изменять и добавлять условия и значения условий Remote Config . Например, чтобы добавить новое условие:
Node.js
function addNewCondition(template) { template.conditions.push({ name: 'android_en', expression: 'device.os == \'android\' && device.country in [\'us\', \'uk\']', tagColor: 'BLUE', }); }
Java
template.getConditions().add(new Condition("android_en", "device.os == 'android' && device.country in ['us', 'uk']", TagColor.BLUE));
Во всех случаях после внесения изменений необходимо обязательно опубликовать шаблон.
API-интерфейсы бэкэнда Remote Config предоставляют несколько условий и операторов сравнения, которые можно использовать для изменения поведения и внешнего вида вашего приложения. Для получения дополнительной информации об условиях и поддерживаемых для них операторах см. справочник по условным выражениям .
Проверьте шаблон Remote Config .
При желании вы можете проверить свои обновления перед публикацией, как показано ниже:
Node.js
function validateTemplate(template) { admin.remoteConfig().validateTemplate(template) .then(function (validatedTemplate) { // The template is valid and safe to use. console.log('Template was valid and safe to use'); }) .catch(function (err) { console.error('Template is invalid and cannot be published'); console.error(err); }); }
Java
try { Template validatedTemplate = FirebaseRemoteConfig.getInstance() .validateTemplateAsync(template).get(); System.out.println("Template was valid and safe to use"); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Template is invalid and cannot be published"); System.out.println(rcError.getMessage()); } }
В процессе проверки выявляются ошибки, такие как повторяющиеся ключи для параметров и условий, недопустимые имена условий или несуществующие условия, а также неправильно отформатированные etags. Например, запрос, содержащий больше допустимого количества ключей — 2000 — вернет сообщение об ошибке « Param count too large .
Опубликуйте шаблон Remote Config .
Получив шаблон и внеся в него необходимые изменения, вы можете его опубликовать. Публикация шаблона, как описано в этом разделе, заменяет весь существующий шаблон конфигурации обновленным файлом, и новому активному шаблону присваивается номер версии на единицу больше, чем у замененного им шаблона.
При необходимости вы можете использовать REST API для отката к предыдущей версии . Чтобы снизить риск ошибок при обновлении, вы можете выполнить проверку перед публикацией .
Настройки и условия Remote Config включены в загруженные шаблоны, поэтому важно учитывать следующие ограничения при попытке публикации в другом проекте:
Настройки персонализации нельзя импортировать из одного проекта в другой.
Например, если в вашем проекте включены персонализации, и вы загружаете и редактируете шаблон, вы можете опубликовать его в том же проекте, но не можете опубликовать его в другом проекте, если не удалите персонализации из шаблона.
Условия можно импортировать из проекта в проект, но обратите внимание, что любые конкретные значения условий (например, идентификаторы приложений или аудитории) должны существовать в целевом проекте до публикации.
Например, если у вас есть параметр Remote Config , использующий условие, указывающее значение платформы
iOS, шаблон можно опубликовать в другом проекте, поскольку значения платформы одинаковы для всех проектов. Однако, если он содержит условие, зависящее от конкретного идентификатора приложения или целевой аудитории, которых нет в целевом проекте, проверка завершится неудачей.Если шаблон, который вы планируете опубликовать, содержит условия, зависящие от Google Analytics , Analytics необходимо включить в целевом проекте.
Node.js
function publishTemplate() { var config = admin.remoteConfig(); var template = config.createTemplateFromJSON( fs.readFileSync('config.json', 'UTF8')); config.publishTemplate(template) .then(function (updatedTemplate) { console.log('Template has been published'); console.log('ETag from server: ' + updatedTemplate.etag); }) .catch(function (err) { console.error('Unable to publish template.'); console.error(err); }); }
Java
try { Template publishedTemplate = FirebaseRemoteConfig.getInstance() .publishTemplateAsync(template).get(); System.out.println("Template has been published"); // See the ETag of the published template. System.out.println("ETag from server: " + publishedTemplate.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Unable to publish template."); System.out.println(rcError.getMessage()); } }
Изменение Remote Config с помощью REST API
В этом разделе описаны основные возможности REST API Remote Config по адресу https://firebaseremoteconfig.googleapis.com . Для получения более подробной информации см. справочник по API .
Получите токен доступа для аутентификации и авторизации запросов к API.
Проекты Firebase поддерживают сервисные учетные записи Google, которые можно использовать для вызова API сервера Firebase с вашего сервера приложений или доверенной среды. Если вы разрабатываете код локально или развертываете приложение локально, вы можете использовать учетные данные, полученные с помощью этой сервисной учетной записи, для авторизации запросов к серверу.
Вы можете просмотреть все учетные записи служб для вашего проекта Firebase в
Для аутентификации учетной записи службы и предоставления ей доступа к сервисам Firebase необходимо сгенерировать файл закрытого ключа в формате JSON.
Чтобы сгенерировать файл закрытого ключа для вашей служебной учетной записи:
В консоли Firebase перейдите в...
> Вкладка «Учетные записи служб» . Нажмите «Сгенерировать новый закрытый ключ» , затем подтвердите, нажав «Сгенерировать ключ» .
Надежно сохраните JSON-файл, содержащий ключ.
При авторизации через служебную учетную запись у вас есть два варианта предоставления учетных данных вашему приложению. Вы можете либо установить переменную среды GOOGLE_APPLICATION_CREDENTIALS , либо явно передать путь к ключу служебной учетной записи в коде. Первый вариант более безопасен и настоятельно рекомендуется.
Чтобы установить переменную среды:
Установите переменную среды GOOGLE_APPLICATION_CREDENTIALS на путь к JSON-файлу, содержащему ключ вашей учетной записи службы. Эта переменная применяется только к текущей сессии оболочки, поэтому, если вы откроете новую сессию, установите переменную снова.
Linux или macOS
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Windows
С помощью PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
После выполнения описанных выше шагов Application Default Credentials (ADC) сможет автоматически определять ваши учетные данные, что позволит вам использовать учетные данные сервисной учетной записи при тестировании или запуске в средах, отличных от Google.
Используйте свои учетные данные Firebase вместе с библиотекой Google Auth для предпочитаемого языка, чтобы получить кратковременный токен доступа OAuth 2.0:
node.js
function getAccessToken() {
return admin.credential.applicationDefault().getAccessToken()
.then(accessToken => {
return accessToken.access_token;
})
.catch(err => {
console.error('Unable to get access token');
console.error(err);
});
}
В этом примере клиентская библиотека Google API аутентифицирует запрос с помощью JSON-токена (JWT). Дополнительную информацию см. в разделе «JSON-токены» .
Python
def _get_access_token():
"""Retrieve a valid access token that can be used to authorize requests.
:return: Access token.
"""
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'service-account.json', SCOPES)
access_token_info = credentials.get_access_token()
return access_token_info.access_token
Java
public static String getAccessToken() throws IOException {
GoogleCredentials googleCredentials = GoogleCredentials
.fromStream(new FileInputStream("service-account.json"))
.createScoped(Arrays.asList(SCOPES));
googleCredentials.refreshAccessToken();
return googleCredentials.getAccessToken().getTokenValue();
}
После истечения срока действия вашего токена доступа автоматически вызывается метод обновления токена для получения обновленного токена доступа.
Для авторизации доступа к Remote Config запросите область действия https://www.googleapis.com/auth/firebase.remoteconfig .
Измените шаблон Remote Config .
При работе с шаблонами Remote Config следует помнить, что они версионированы, и каждая версия имеет ограниченный срок действия с момента ее создания до момента замены обновлением: 90 дней, с общим лимитом в 300 сохраненных версий. Дополнительную информацию см. в разделе «Шаблоны и версионирование» .
Получите текущий шаблон Remote Config
Вы можете использовать API бэкэнда для получения текущей активной версии шаблона Remote Config в формате JSON.
Параметры и значения параметров, созданные специально в качестве вариантов в эксперименте A/B Testing не включаются в экспортируемые шаблоны.
Используйте следующие команды:
cURL
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filenameЭта команда выводит полезную нагрузку JSON в один файл, а заголовки (включая Etag) — в отдельный файл.
Необработанный HTTP-запрос
Host: firebaseremoteconfig.googleapis.com GET /v1/projects/my-project-id/remoteConfig HTTP/1.1 Authorization: Bearer token Accept-Encoding: gzip
Этот вызов API возвращает следующий JSON, а также отдельный заголовок, содержащий ETag , который вы используете для последующего запроса.
Проверьте шаблон Remote Config .
При желании вы можете проверить свои обновления перед публикацией. Для проверки обновлений шаблона добавьте к запросу на публикацию параметр URL ?validate_only=true . В ответе код состояния 200 и обновленный etag с суффиксом -0 означают, что ваше обновление было успешно проверено. Любой ответ, отличный от 200, указывает на то, что данные JSON содержат ошибки, которые необходимо исправить перед публикацией.
Обновите шаблон Remote Config .
Получив шаблон и внеся в него изменения в JSON-содержимое, вы можете его опубликовать. Публикация шаблона, как описано в этом разделе, заменяет весь существующий шаблон конфигурации обновленным файлом, и новому активному шаблону присваивается номер версии на единицу больше, чем у замененного им шаблона.
При необходимости вы можете использовать REST API для отката к предыдущей версии . Чтобы снизить риск ошибок при обновлении, вы можете выполнить проверку перед публикацией .
Настройки и условия Remote Config включены в загруженные шаблоны, поэтому важно учитывать следующие ограничения при попытке публикации в другом проекте:
Настройки персонализации нельзя импортировать из одного проекта в другой.
Например, если в вашем проекте включены персонализации, и вы загружаете и редактируете шаблон, вы можете опубликовать его в том же проекте, но не можете опубликовать его в другом проекте, если не удалите персонализации из шаблона.
Условия можно импортировать из проекта в проект, но обратите внимание, что любые конкретные значения условий (например, идентификаторы приложений или аудитории) должны существовать в целевом проекте до публикации.
Например, если у вас есть параметр Remote Config , использующий условие, указывающее значение платформы
iOS, шаблон можно опубликовать в другом проекте, поскольку значения платформы одинаковы для всех проектов. Однако, если он содержит условие, зависящее от конкретного идентификатора приложения или целевой аудитории, которых нет в целевом проекте, проверка завершится неудачей.Если шаблон, который вы планируете опубликовать, содержит условия, зависящие от Google Analytics , Analytics необходимо включить в целевом проекте.
cURL
curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filenameДля этой команды curl вы можете указать содержимое, используя символ "@", за которым следует имя файла.
Необработанный HTTP-запрос
Host: firebaseremoteconfig.googleapis.com PUT /v1/projects/my-project-id/remoteConfig HTTP/1.1 Content-Length: size Content-Type: application/json; UTF8 Authorization: Bearer token If-Match: expected ETag Accept-Encoding: gzip JSON_HERE
Поскольку это запрос на запись, ETag изменяется этой командой, и обновленный ETag предоставляется в заголовках ответа следующей команды PUT .
Изменение условий Remote Config
Вы можете программно изменять условия и значения условий Remote Config . При использовании REST API для изменения условий необходимо редактировать шаблон непосредственно перед его публикацией.
{
"conditions": [{
"name": "android_english",
"expression": "device.os == 'android' && device.country in ['us', 'uk']",
"tagColor": "BLUE"
}, {
"name": "tenPercent",
"expression": "percent <= 10",
"tagColor": "BROWN"
}],
"parameters": {
"welcome_message": {
"defaultValue": {
"value": "Welcome to this sample app"
},
"conditionalValues": {
"tenPercent": {
"value": "Welcome to this new sample app"
}
},
"description": "The sample app's welcome message"
},
"welcome_message_caps": {
"defaultValue": {
"value": "false"
},
"conditionalValues": {
"android_english": {
"value": "true"
}
},
"description": "Whether the welcome message should be displayed in all
capital letters."
}
}
}Изменения в приведенном выше фрагменте кода сначала определяют набор условий, а затем определяют значения по умолчанию и значения параметров, зависящие от условий ( условные значения ) для каждого параметра. Они также добавляют необязательное описание для каждого элемента; подобно комментариям к коду, они предназначены для использования разработчиками и не отображаются в приложении. Для целей контроля версий также предоставляется ETag .
API-интерфейсы бэкэнда Remote Config предоставляют несколько условий и операторов сравнения, которые можно использовать для изменения поведения и внешнего вида вашего приложения. Для получения дополнительной информации об условиях и поддерживаемых для них операторах см. справочник по условным выражениям .
Коды ошибок HTTP
| Код состояния | Значение |
|---|---|
| 200 | Обновлено успешно |
| 400 | Произошла ошибка проверки. Например, запрос, содержащий большее количество ключей, чем разрешено (2000), вернет код 400 (Неверный запрос) с сообщением об ошибке « Param count too large . Кроме того, этот код состояния HTTPS может появиться в двух следующих ситуациях:
|
| 401 | Произошла ошибка авторизации (не предоставлен токен доступа или REST API Firebase Remote Config не добавлен в ваш проект в консоли разработчика Cloud). |
| 403 | Произошла ошибка аутентификации (был предоставлен неверный токен доступа). |
| 500 | Произошла внутренняя ошибка. В случае возникновения этой ошибки создайте заявку в службу поддержки Firebase. |
Код состояния 200 означает, что шаблон Remote Config (параметры, значения и условия для проекта) был обновлен и теперь доступен приложениям, использующим этот проект. Другие коды состояния указывают на то, что ранее существовавший шаблон Remote Config все еще действует.
После отправки изменений в шаблон перейдите в консоль Firebase , чтобы убедиться, что ваши изменения отображаются должным образом. Это очень важно, поскольку порядок условий влияет на то, как они оцениваются (вступает в силу первое условие, которое оценивается true ).
Использование ETag и принудительные обновления
REST API Remote Config использует тег сущности (ETag) для предотвращения состояний гонки и дублирования обновлений ресурсов. Подробнее об ETag можно узнать в разделе ETag - HTTP .
Для REST API Google рекомендует кэшировать ETag, полученный из последней команды GET , и использовать это значение ETag в заголовке запроса If-Match при выполнении команд PUT . Если ваша команда PUT приводит к коду состояния HTTPS 409, следует выполнить новую команду GET , чтобы получить новый ETag и шаблон для использования в следующей команде PUT .
Вы можете обойти ETag и предоставляемую им защиту, принудительно обновив шаблон Remote Config следующим образом: If-Match: * . Однако этот подход не рекомендуется, поскольку существует риск потери обновлений шаблона Remote Config Remote Config , если несколько клиентов обновляют его одновременно. Подобный конфликт может возникнуть при использовании API несколькими клиентами или при конфликтующих обновлениях от клиентов API и пользователей консоли Firebase .
Рекомендации по управлению версиями шаблонов Remote Config см. в разделе «Шаблоны Remote Config и версионирование» .
Изменение Remote Config с помощью Firebase CLI
Интерфейс командной строки Firebase позволяет проверять, управлять и откатывать шаблоны Remote Config , а также просматривать, проверять и удалять эксперименты и развертывания Remote Config непосредственно из командной строки.
Предварительные условия и настройка
Установите Firebase CLI или обновите его до последней версии .
Войдите в Firebase :
firebase loginУкажите активный проект или укажите
--project PROJECT_IDпри каждой команде:firebase use PROJECT_ID
Убедитесь, что ваша учетная запись или служебная учетная запись имеет необходимые разрешения IAM:
- Для просмотра, загрузки или отката шаблонов Remote Config и управления развертываниями вам потребуется роль администратора Firebase Remote Config (
roles/cloudconfig.admin) (или разрешенияcloudconfig.configs.get,cloudconfig.configs.update,cloudconfig.rollouts.get,cloudconfig.rollouts.listиcloudconfig.rollouts.archive). Для операций только просмотра достаточно роли пользователя Firebase Remote Config (roles/cloudconfig.viewer) (cloudconfig.configs.get,cloudconfig.rollouts.getиcloudconfig.rollouts.list). - Для управления экспериментами A/B Testing вам потребуется роль администратора Firebase A/B Testing (
roles/firebaseabt.admin) (или разрешенияfirebaseabt.experiments.get,firebaseabt.experiments.listиfirebaseabt.experiments.delete). Для операций только просмотра достаточно роли наблюдателя Firebase A/B Testing (roles/firebaseabt.viewer) .
Сводка команд CLI
| Командование | Описание |
|---|---|
firebase remoteconfig:versions:list | Отображает список последних версий шаблона Remote Config . |
firebase remoteconfig:get | Получает шаблон Remote Config (при необходимости записывая его в файл). |
firebase remoteconfig:rollback | Откатывает шаблон Remote Config к предыдущей версии. |
firebase remoteconfig:experiments:list | Отображает список всех экспериментов Remote Config в проекте. |
firebase remoteconfig:experiments:get | Получает подробную информацию о конкретном эксперименте Remote Config . |
firebase remoteconfig:experiments:delete | Удаляет конкретный эксперимент Remote Config . |
firebase remoteconfig:rollouts:list | Отображает список всех развертываний Remote Config в проекте. |
firebase remoteconfig:rollouts:get | Получает подробную информацию о конкретном развертывании Remote Config . |
firebase remoteconfig:rollouts:delete | Удаляет определенный набор Remote Config . |
Изменение шаблонов и версий Remote Config
Для просмотра, загрузки и отката шаблонов Remote Config и истории их версий используйте следующие команды:
Перечислить версии шаблонов
По умолчанию отображается список из 10 последних версий шаблона Remote Config , включая номер версии, время обновления, источник обновления, тип обновления и updateUser .
firebase remoteconfig:versions:list [--limit NUMBER_OF_VERSIONS]--limit NUMBER_OF_VERSIONS: Максимальное количество возвращаемых версий. Укажите0, чтобы вернуть все существующие версии (до лимита в 300 сохраненных версий).
Примеры:
Перечислите 10 самых последних версий:
firebase remoteconfig:versions:listПеречислите все доступные версии:
firebase remoteconfig:versions:list --limit 0Перечислите 5 самых последних версий:
firebase remoteconfig:versions:list --limit 5
Получить шаблон
Получает шаблон Remote Config и выводит группы параметров, параметры, имена условий и версию. По умолчанию он получает последнюю активную версию и выводит отформатированное резюме в терминал.
firebase remoteconfig:get [-v, --version_number VERSION_NUMBER] [-o, --output FILENAME]-v, --version_number VERSION_NUMBER: Номер версии шаблона для получения. Если не указан, используется последняя версия по умолчанию.-
-o, --output FILENAME: Записывает шаблон JSON-данных непосредственно в указанный путь, а не выводит их в стандартный поток вывода.
Примеры:
Отобразите текущий активный шаблон в терминале:
firebase remoteconfig:getЗагрузите текущий активный шаблон в файл JSON:
firebase remoteconfig:get -o remote_config_template.jsonЗагрузите конкретную историческую версию (например, версию 12) в файл:
firebase remoteconfig:get -v 12 -o remote_config_v12.json
Откатить шаблон
Эта операция откатывает активный шаблон Remote Config к предыдущей версии. При этом создается новая активная версия, содержимое которой идентично целевой версии.
firebase remoteconfig:rollback [-v, --version_number VERSION_NUMBER] [--force]-v, --version_number VERSION_NUMBER: Целевой номер версии для отката. Если опущено, по умолчанию используется непосредственно предшествующая версия (текущая версия минус 1).-
--force: Выполняет откат немедленно, без запроса интерактивного подтверждения ( Y/N ). Полезно для конвейеров CI/CD и автоматизированных скриптов.
Примеры:
Откат к предыдущей версии с интерактивным подтверждением:
firebase remoteconfig:rollbackОткат к версии 8 без запроса подтверждения:
firebase remoteconfig:rollback -v 8 --force
Модифицировать эксперименты A/B Testing
Используйте следующие команды для просмотра, проверки и удаления экспериментов A/B Testing Remote Config непосредственно через командную строку:
Список экспериментов
Отображает список всех экспериментов Remote Config для проекта, с возможностью фильтрации и постраничной навигации.
firebase remoteconfig:experiments:list [--filter EXPRESSION] [--pageSize NUMBER] [--pageToken TOKEN]--filter EXPRESSION: Выражение фильтра, применяемое к списку экспериментов.-
--pageSize NUMBER: Количество экспериментов, которые будут отображаться на странице (по умолчанию 10). -
--pageToken TOKEN: Токен для смещения страницы при получении результатов с постраничной навигацией.
Пример:
firebase remoteconfig:experiments:listПолучить подробную информацию об эксперименте
Получает полную информацию об указанном эксперименте Remote Config .
firebase remoteconfig:experiments:get EXPERIMENT_IDПример:
firebase remoteconfig:experiments:get exp_promo_discount_2026Удалить эксперимент
Удаляет указанный эксперимент Remote Config .
firebase remoteconfig:experiments:delete EXPERIMENT_IDПример:
firebase remoteconfig:experiments:delete exp_promo_discount_2026Изменение параметров развертывания Remote Config
Используйте следующие команды для просмотра, проверки и удаления развертываний Remote Config непосредственно с помощью CLI:
Внедрение списков
Отображает список всех развертываний Remote Config для проекта, с возможностью фильтрации и постраничной навигации.
firebase remoteconfig:rollouts:list [--filter EXPRESSION] [--pageSize NUMBER] [--pageToken TOKEN]--filter EXPRESSION: Выражение фильтра, применяемое к списку раскрывающихся списков.-
--pageSize NUMBER: Количество элементов, отображаемых на странице (по умолчанию 10). -
--pageToken TOKEN: Токен для смещения страницы при получении результатов с постраничной навигацией.
Пример:
firebase remoteconfig:rollouts:listПолучить подробную информацию о развертывании
Получает полную информацию о развертывании указанной Remote Config .
firebase remoteconfig:rollouts:get ROLLOUT_IDПример:
firebase remoteconfig:rollouts:get rollout_new_checkout_flowУдалить развертывание
Удаляет указанный набор Remote Config .
firebase remoteconfig:rollouts:delete ROLLOUT_IDПример:
firebase remoteconfig:rollouts:delete rollout_new_checkout_flowДля получения более общей информации о командах Firebase CLI см. справочник Firebase CLI .