Основы Remote Config Firebase.
npx -y skills add firebase/agent-skills --skill firebase-remote-config-basics --agent claude-codeПолное руководство по Firebase Remote Config — изменение поведения и внешнего вида приложения без публикации обновления. Конфигурация хранится в облаке и доставляется в приложение в реальном времени.
firebase-basics# Инициализировать Remote Config в проекте
npx -y firebase-tools@latest remoteconfig:get
# Обновить шаблон
npx -y firebase-tools@latest remoteconfig:update --config rc-template.json
# Откатить к предыдущей версии
npx -y firebase-tools@latest remoteconfig:rollback --version-number 5
{
"parameters": {
"welcome_message": {
"defaultValue": { "value": "Добро пожаловать!" },
"conditionalValues": {
"ios_users": { "value": "Привет, iOS!" }
},
"description": "Приветственное сообщение на главном экране"
},
"feature_new_ui": {
"defaultValue": { "value": "false" },
"valueType": "BOOLEAN"
}
},
"conditions": [
{
"name": "ios_users",
"expression": "device.os == 'ios'",
"tagColor": "BLUE"
}
]
}
val remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)
remoteConfig.fetchAndActivate().addOnCompleteListener { task ->
if (task.isSuccessful) {
val welcomeMsg = remoteConfig.getString("welcome_message")
val newUiEnabled = remoteConfig.getBoolean("feature_new_ui")
}
}
let remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings
remoteConfig.fetchAndActivate { status, error in
if status == .successFetchedFromRemote || status == .successUsingPreFetchedData {
let welcomeMsg = remoteConfig["welcome_message"].stringValue
let newUiEnabled = remoteConfig["feature_new_ui"].boolValue
}
}
| Тип условия | Пример выражения |
|---|---|
| Платформа | device.os == 'android' |
| Версия приложения | app.version.>=(6,0,0) |
| Страна | device.country in ['RU', 'BY', 'KZ'] |
| Случайный процент | percent <= 10 (10% пользователей) |
| User property | userProperty['plan'] == 'premium' |
STRING — строки (по умолчанию)BOOLEAN — флаги функцийNUMBER — числовые значенияJSON — сложные конфигурацииnpx 403 Forbidden: сообщить пользователю об ошибке реестра и использовать локальный firebase если он установлен (npm install -g firebase-tools).
«no active project»: выполнить firebase use <project-id> или передать флаг --project <project-id>.