firebase-remote-config-basicsосновы Remote Config Firebase агент
firebase/agent-skills
Основы Remote Config Firebase.
Установка
npx -y skills add firebase/agent-skills --skill firebase-remote-config-basics --agent claude-codeFirebase Remote Config
Полное руководство по Firebase Remote Config — изменение поведения и внешнего вида приложения без публикации обновления. Конфигурация хранится в облаке и доставляется в приложение в реальном времени.
Предварительные условия
- Проект Firebase с подключённым Android или iOS приложением
- Firebase CLI для управления шаблоном и условиями через командную строку
- Базовая настройка — см. скилл
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"
}
]
}
SDK — Android (Kotlin)
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")
}
}
SDK — iOS (Swift)
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>.
Из того же репозитория
firebase-basics — основы Firebase CLI
firebase/agent-skills
Базовые воркфлоу Firebase CLI для любого проекта. Принудительно использует последние инструменты через npx вместо глобальных устаревших версий.
firebase-auth-basics — аутентификация Firebase
firebase/agent-skills
Настройка и реализация Firebase Authentication: вход пользователей, управление аккаунтами, провайдеры OAuth для разных типов приложений.
firebase-hosting-basics — хостинг статических сайтов Firebase
firebase/agent-skills
Деплой статических сайтов и SPA на Firebase Hosting: конфигурация firebase.json для редиректов, rewrites и заголовков. Команды деплоя и превью.
firebase-app-hosting-basics — Firebase App Hosting для Next.js
firebase/agent-skills
Полный пайплайн деплоя Next.js и Angular на Firebase App Hosting: SSR и ISR. Настройка firebase.json с apphosting блоками и CDN.
firebase-data-connect — Firebase SQL Connect с PostgreSQL
firebase/agent-skills
Комплексный помощник для Firebase SQL Connect (Data Connect) с PostgreSQL и GraphQL: схема → мутации → запросы → SDK и деплой в продакшен.
developing-genkit-js — AI агенты на Genkit JS
firebase/agent-skills
Для Genkit 1.0+ где API полностью изменились и большинство примеров в сети устарели. Принудительно проверяет common-errors.md перед любым кодом.
