Config templates using the Admin SDK, REST API, and Firebase CLI. page_type: guide
В этом документе описывается, как программно читать и изменять набор параметров и условий в формате JSON, известный как шаблон Remote Config. Это позволяет вносить изменения в шаблон на сервере, которые клиентское приложение может получить с помощью клиентской библиотеки.
Используя REST API Remote Config, Admin SDKs или Firebase CLI, описанные в этом руководстве, вы можете не управлять шаблоном в консоли 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 и считывает параметры из переменной среды 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()); } }
В ходе проверки выявляются такие ошибки, как повторяющиеся ключи для параметров и условий, недопустимые названия условий, несуществующие условия и неправильно отформатированные теги etag. Например, если в запросе содержится больше ключей, чем разрешено (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
В этом разделе описаны основные возможности Remote Config REST API (https://firebaseremoteconfig.googleapis.com). Подробную информацию можно найти в документации по API.
Получите токен доступа для аутентификации и авторизации запросов API
Проекты Firebase поддерживают сервисные аккаунты Google, которые можно использовать для вызова серверных API Firebase с сервера приложения или из доверенной среды. Если вы разрабатываете код локально или развертываете приложение на собственных серверах, то можете использовать учетные данные, полученные с помощью этого сервисного аккаунта, для авторизации запросов к серверу.
Чтобы посмотреть все сервисные аккаунты для проекта Firebase, откройте раздел
Чтобы выполнить аутентификацию сервисного аккаунта и предоставить ему доступ к сервисам Firebase, необходимо создать файл закрытого ключа в формате JSON.
Чтобы создать файл закрытого ключа для сервисного аккаунта, выполните следующие действия:
В консоли Firebase перейдите на вкладку
Settings (Настройки) > Service accounts (Сервисные аккаунты).Нажмите Создать новый закрытый ключ, а затем подтвердите действие, нажав Создать ключ.
Сохраните JSON-файл с ключом в надежном месте.
При авторизации через сервисный аккаунт у вас есть два способа предоставить учетные данные приложению. Вы можете задать переменную среды GOOGLE_APPLICATION_CREDENTIALS или явно передать путь к ключу сервисного аккаунта в коде.
Первый вариант более безопасен, и мы настоятельно рекомендуем использовать именно его.
Чтобы задать переменную среды, выполните следующие действия:
Установите переменную среды GOOGLE_APPLICATION_CREDENTIALS, указав путь к файлу JSON, который содержит ключ сервисного аккаунта.
Эта переменная применяется только к текущему сеансу оболочки, поэтому, если вы откроете новый сеанс, установите переменную снова.
Linux или macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_FILE_PATH"
Windows
С помощью PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_FILE_PATH"
После выполнения описанных выше действий стандартные учетные данные приложения (ADC) смогут неявно определять ваши учетные данные, что позволит вам использовать учетные данные сервисного аккаунта при тестировании или запуске в средах, отличных от Google.
Чтобы получить краткосрочный токен доступа OAuth 2.0, используйте учетные данные Firebase вместе с библиотекой Google Auth для выбранного языка:
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, значит обновление прошло проверку. Любой другой ответ означает, что данные 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 | Произошла ошибка авторизации (не предоставлен токен доступа или Firebase Remote Config REST API не добавлен в проект в Cloud Developer Console). |
| 403 | Произошла ошибка аутентификации (указан неверный токен доступа). |
| 500 | Произошла внутренняя ошибка. Если вы столкнулись с этой ошибкой, отправьте запрос в службу поддержки Firebase. |
Код статуса 200 означает, что шаблон Remote Config (параметры, значения и условия для проекта) был обновлен и теперь доступен для приложений, использующих этот проект. Другие коды статуса указывают на то, что ранее существовавший шаблон Remote Config по-прежнему действует.
После того как вы отправите изменения в шаблоне, перейдите в консоль Firebase и убедитесь, что они отображаются правильно. Это важно, поскольку порядок условий влияет на то, как они оцениваются (вступает в силу первое условие, которое оценивается как true).
Использование ETag и принудительные обновления
В REST API Remote Config используется тег объекта (ETag), который позволяет предотвратить состояние гонки и наложение обновлений ресурсов. Подробнее об ETag…
При использовании REST API рекомендуется кешировать ETag, предоставленный последней командой GET, и использовать это значение ETag в заголовке запроса If-Match при выполнении команд PUT. Если в результате выполнения команды PUT вы получили код статуса HTTPS 409, выполните команду GET, чтобы получить новый ETag и шаблон для следующей команды PUT.
Вы можете обойти ETag и защиту, которую он обеспечивает, принудительно обновив шаблон Remote Config следующим образом: If-Match: *. Однако мы не рекомендуем использовать этот подход, поскольку он может привести к потере обновлений шаблона Remote Config, если его обновляют несколько клиентов.Remote Config Такой конфликт может возникнуть, если API используют несколько API-клиентов или если обновления от API-клиентов и пользователей консоли Firebase противоречат друг другу.
Инструкции по управлению версиями шаблонов Remote Config приведены в статье Шаблоны Remote Config и управление версиями.
Измените Remote Config с помощью интерфейса командной строки Firebase
Интерфейс командной строки 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Показать пять последних версий:
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 шаблона непосредственно по указанному пути, а не выводит ее в stdout.
Примеры:
Показать текущий активный шаблон в терминале:
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 эксперимент
Чтобы посмотреть список экспериментов Remote Config A/B Testing, проверить их или удалить, используйте следующие команды:
Список экспериментов
Возвращает список всех экспериментов 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Общие сведения о командах CLI Firebase можно найти в справочнике по CLI Firebase.