Catch up on everthing we announced at this year's Firebase Summit. Learn more

Параметры и условия удаленной настройки

При использовании Firebase консоли или удаленного API , бэкэнд Config , можно определить один или несколько параметров (пар ключ-значение) и укажите значения в приложении по умолчанию для этих параметров. Вы можете переопределить значения по умолчанию в приложении, определив значения параметров на стороне сервера. Ключи параметров и значения параметров являются строками, но значения параметров могут быть преобразованы как другие типы данных, когда вы используете эти значения в своем приложении.

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

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

Условия, правила и условные значения

Условие используется для нацеливания на группу экземпляров приложения. Условия состоят из одного или нескольких правил , которые все должны вычисляться true для условия , чтобы оценить, true для данного экземпляра приложения. Если значение правила не определено (например, если значение отсутствует), то правило будет вычисляться , false .

Например, параметр , который определяет страницу выплеска приложения , мог отображать различные изображения в зависимости от типа операционной системы с помощью простого правила , if device_os = Android :

Снимок экрана с параметром splash_page в консоли Firebase, показывающий его значение по умолчанию для iOS и условное значение для Android.

Или же временное условие может быть использовано для управления , когда ваше приложение отображает специальные рекламные элементы.

Параметр может иметь несколько условных значений, использующих разные условия, а параметры могут иметь общие условия в рамках проекта. В закладке Параметры в Firebase консоли, вы можете просматривать выборки процент для условных значений каждого параметра. Этот показатель указывает процент запросов за последние 24 часа, по которым было получено каждое значение.

Приоритет значения параметра

С параметром может быть связано несколько условных значений. Следующие правила определяют, какое значение извлекается из Remote Config Server и какое значение используется в данном экземпляре приложения в определенный момент времени:

Значения параметров на стороне сервера выбираются в соответствии со следующим списком приоритетов

  1. Во- первых, условные значения применяются, если таковые есть условия , которые оценивают в true для данного экземпляра приложения. Если несколько условий оценить, true , первый (верхний) один показан в Firebase консоль UI имеет приоритет, и условные значения , связанные с этим условием предоставляется , когда приложение извлекает значения из внутреннего интерфейса. Вы можете изменить приоритет условий перетаскивания условий на вкладке Conditions.

  2. Если нет никаких условных значений с условиями , которые оценивают в true значение на стороне сервера по умолчанию предоставляется , когда приложение извлекает значения из внутреннего интерфейса. Если параметр не существует в интерфейсе, или если значение по умолчанию устанавливаются для использования в приложениях по умолчанию, то значение не предусмотрено для этого параметра , когда приложение извлекает значения.

В приложении, значения параметров возвращаются get методами в соответствии со следующим списком приоритетных

  1. Если значение было получено из серверной части и затем активировано, приложение использует полученное значение. Значения активированных параметров постоянны.
  2. Если значение не было получено из серверной части или если значения, полученные из серверной части Remote Config, не были активированы, приложение использует внутреннее значение по умолчанию.
  3. Если значение в приложении по умолчанию не установлено, приложение использует значение статического типа (например, 0 для int и false для boolean ).

На этом рисунке показан порядок приоритетов значений параметров в серверной части Remote Config и в вашем приложении:

Диаграмма, показывающая поток, описанный упорядоченными списками выше

Типы данных значения параметра

Remote Config позволяет выбрать тип данных для каждого параметра и проверяет все значения на стороне сервера на соответствие этому типу перед обновлением шаблона. Тип данных хранится и возвращается на getRemoteConfig запрос.

В настоящее время поддерживаются следующие типы:

  • String
  • Boolean
  • Number
  • JSON

В пользовательском интерфейсе консоли Firebase тип данных можно выбрать из раскрывающегося списка рядом с ключом параметра. В REST API тип может быть установлен с помощью value_type поля в пределах объекта параметра.

Группы параметров

Remote Config позволяет группировать параметры вместе для более организованного пользовательского интерфейса и ментальной модели.

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

Вы можете создавать группы параметров с помощью консоли Firebase или REST API удаленной конфигурации. Каждая создаваемая вами группа параметров имеет уникальное имя в шаблоне Remote Config. При создании групп параметров имейте в виду:

  • Параметры могут быть включены только в одну группу в любое время, и ключ параметра должен быть уникальным для всех параметров.
  • Имена групп параметров ограничены 256 символами.
  • Если вы используете и REST API, и консоль Firebase, убедитесь, что вся логика REST API обновлена ​​для обработки групп параметров при публикации.

Создание или изменение групп параметров с помощью консоли Firebase

Вы можете Параметры группы в Параметры вкладки консоли Firebase. Чтобы создать или изменить группу:

  1. Выберите Управление групп.
  2. Выберите флажки для параметров , которые вы хотите добавить , и выберите Переместить в группу.
  3. Выберите существующую группу или создать новую группу, введя имя и описание, и выбрав Создать новую группу. После того, как вы сохраните группу, она доступна будет опубликовано с помощью кнопки Опубликовать изменения.

Создавать группы программно

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

  1. Получить текущий шаблон
  2. Добавьте объекты JSON для представления групп параметров
  3. Опубликуйте группы параметров с помощью запроса HTTP PUT.

parameterGroups объект содержит ключи группы, с вложенным описанием и списком сгруппированных параметров. Обратите внимание, что каждый ключ группы должен быть глобально уникальным.

Например, вот отрывок из пересмотра шаблона , который добавляет группу параметров «новое меню» с одним параметром, pumpkin_spice_season :

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

Типы правил условий

В консоли Firebase поддерживаются следующие типы правил. Эквивалентная функциональность доступна в конфигурации удаленного REST API, как подробно описано в ссылке условного выражения .

Тип правила Оператор (ы) Ценности) Примечание
Приложение == Выберите из списка идентификаторов приложений для приложений, связанных с вашим проектом Firebase. При добавлении приложения в Firebase, вы вводите расслоение ID или имя пакета Android , который определяет атрибут , который подвергается в App ID в удаленных правилах Config.

Используйте этот атрибут следующим образом:
  • Для Apple , платформ: использование приложения CFBundleIdentifier . Вы можете найти идентификатор пакета на вкладке Общие для основной цели вашего приложения в Xcode.
  • Для Android: Используйте приложение в ApplicationID . Вы можете найти applicationId в приложении уровня build.gradle файла.
Версия приложения Для строковых значений:
точно совпадает,
содержит,
не содержит,
регулярное выражение

Для числовых значений:
=, ≠,>, ≥, <, ≤

Укажите версии вашего приложения для таргетинга.

Перед использованием этого правила, вы должны использовать правило App ID , чтобы выбрать приложение для Android / Apple , связанное с проектом Firebase.

Для Apple , платформ: Используйте приложение в CFBundleShortVersionString .

Примечание: Убедитесь , что ваше приложение Apple , использует Firebase компании Apple платформы SDK версии 6.24.0 или выше, а CFBundleShortVersionString не отправляется в более ранних версиях (см примечания к выпуску ).

Для Android: Используйте приложение в versionName .

При сравнении строк для этого правила учитывается регистр. При использовании в точности матчей, содержит, не содержит, или регулярный оператор выражения, вы можете выбрать несколько значений.

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

Номер сборки Для строковых значений:
точно совпадает,
содержит,
не содержит,
регулярное выражение

Для числовых значений:
=, ≠,>, ≥, <, ≤

Укажите сборки вашего приложения для таргетинга.

Перед использованием этого правила, вы должны использовать правило App ID , чтобы выбрать приложение Apple , или Android , связанное с проектом Firebase.

Этот оператор доступен только для приложений Apple и Android. Это соответствует приложения CFBundleVersion для Apple , и VersionCode для Android. При сравнении строк для этого правила учитывается регистр.

При использовании в точности матчей, содержит, не содержит, или регулярный оператор выражения, вы можете выбрать несколько значений.

При использовании регулярного оператора выражения, вы можете создать регулярные выражения в RE2 формате. Регулярное выражение может полностью или частично соответствовать строке целевой версии. Вы можете также использовать ^ и $ якоря , чтобы соответствовать начало, конец, или полноту целевой строки.

Платформа == iOS
Android
Интернет
Операционная система ==

Укажите целевую операционную систему (ы).

Перед использованием этого правила, вы должны использовать правило App ID , чтобы выбрать веб - приложение , связанное с вашим проектом Firebase.

Это правило имеет значение true для данного экземпляра веб - приложения , если операционная система и ее версия соответствует целевому значению в указанном списке.
Браузер ==

Укажите браузер (ы) для таргетинга.

Перед использованием этого правила, вы должны использовать правило App ID , чтобы выбрать веб - приложение , связанное с вашим проектом Firebase.

Это правило имеет значение true для данного экземпляра веб - приложения , если браузер и его версия соответствует целевому значению в указанном списке.
Дата / время <=,> Указанная дата и время в часовом поясе устройства или в указанном часовом поясе, например «(GMT + 11) Сиднейское время». Сравнивает текущее время со временем получения с устройства.
Пользователь в случайном процентиле <=,> 0–100

Это поле используется , чтобы применить изменения в случайную выборку из экземпляров приложения (с образцами размерами , как малые , как .0001%), используя <= и> операторы для пользователей сегмента (экземпляры приложения) в группы.

Каждый экземпляр приложения постоянно отображаются в случайное целом или дробное число, в соответствии с ключом , определенным в этом проекте. Правило будет использовать ключ по умолчанию (показан как DEF в Firebase консоли) , если вы не выбрать или создать другой ключ. Вы можете вернуть правило , используя ключ по умолчанию, очистив пользователь Рандомайза с помощью этого ключевого поля. Вы можете использовать один ключ в правилах, чтобы последовательно обращаться к одним и тем же экземплярам приложения в заданных процентных диапазонах. Или вы можете выбрать новую случайно назначенную группу экземпляров приложения для заданного процентного диапазона, создав новый ключ.

Например, для создания двух взаимосвязанных условий , которые каждый применяются к непересекающихся 5% пользователей мобильного приложения, вы могли бы иметь одно условие включать <= 5% правило, и другое условие включает как> правило 5% и <= 10% правило. Чтобы некоторые пользователи могли случайным образом появляться в обеих группах, используйте разные ключи для правил в каждом условии.

Пользователь в аудитории == Выберите одну или несколько аудиторий из списка аудиторий Google Analytics, которые вы создали для своего проекта.

Это правило требует, чтобы правило идентификатора приложения выбирало приложение, связанное с вашим проектом Firebase.

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

Устройство в регионе / стране == Выберите один или несколько регионов или стран. Это правило имеет значение true для данного экземпляра приложения , если экземпляр находится в каком - либо из регионов или стран , перечисленные. Код страны устройства определяется с использованием IP-адреса устройства в запросе или кода страны, определенного Firebase Analytics (если данные Analytics передаются Firebase).
Язык устройства == Выберите один или несколько языков. Это правило имеет значение true для данного экземпляра приложения , если этот экземпляр приложения устанавливаются на устройстве , которое использует один из языков , перечисленных.
Свойство пользователя Для строковых значений:
содержит,
не содержит,
точно совпадает,
регулярное выражение

Для числовых значений:
=, ≠,>, ≥, <, ≤

Примечание. На клиенте вы можете установить только строковые значения для свойств пользователя. Для условий, использующих числовые операторы, Remote Config преобразует значение соответствующего свойства пользователя в целое число / число с плавающей запятой.
Выберите из списка доступных свойств пользователя Google Analytics. Чтобы узнать , как вы можете использовать пользовательские свойства , чтобы настроить приложение для очень специфических сегментов базы пользователей, см Удаленная настройка и пользовательские свойства .

Чтобы узнать больше о свойствах пользователя, см. Следующие руководства:

При использовании в точности совпадает, содержит, не содержит или регулярный оператор выражения, вы можете выбрать несколько значений.

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

Примечание: Автоматически собранные свойства пользователя в настоящее время не доступны при создании удаленных условий Config.
Импортированный сегмент == Выберите один или несколько импортированных сегментов. Это правило требует создания пользовательского импортируемых сегментов .
ID установки == Укажите один или несколько идентификаторов установки (до 50) для целевой. Это правило имеет значение true для данной установки , если ID , что установка находится в список разделенных запятыми значений.

Чтобы узнать , как вы можете получить идентификаторы установки см Получить клиентские identifers .

Параметры и условия поиска

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

Ограничения по параметрам и условиям

В проекте Firebase вы можете иметь до 2000 параметров и до 500 условий. Ключи параметров могут иметь длину до 256 символов, должны начинаться с символа подчеркивания или английской буквы (AZ, az) и могут также включать цифры. Общая длина строк значений параметров в проекте не может превышать 1 000 000 символов.

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

Для начала настройки вашего Firebase проекта, см Настройка Firebase Remote Config Project .