firebase-auth-basics
firebase-auth-basics — официальный навык Firebase для настройки и использования Firebase Authentication, когда приложению нужны вход пользователей, управление аккаунтами или защищённый доступ к данным через правила авторизации. В frontmatter указано, что навык лучше всего использовать вместе с Firebase CLI, но сам CLI не является обязательным компонентом карточки: документация показывает команду запуска через npx -y firebase-tools@latest. Перед началом предполагается созданный Firebase Project и авторизованный Firebase CLI. В основе описания лежит модель пользователя. Каждый пользователь получает уникальный uid, общий для всех провайдеров. Дополнительные свойства могут включать email, displayName, photoURL и булево emailVerified. Эта модель нужна для того, чтобы связывать результат входа с последующими запросами приложения. После входа Firebase выдаёт ID Token в формате JWT: в источнике он назван короткоживущим и рассчитанным на один час. Refresh Token описан как долгоживущий и используется для получения новых ID Token. Firebase Authentication в этом навыке рассматривается через несколько способов входа: email/password, федеративные провайдеры Google, Facebook, Twitter, GitHub, Microsoft и Apple, вход по номеру телефона, anonymous-пользователь, которого можно связать с постоянным аккаунтом, а также custom auth для интеграции с существующей системой. В качестве хорошего безопасного варианта по умолчанию источник рекомендует Google Sign In. Это перечисление задаёт доступные сценарии, но не отменяет отдельной настройки и проверки конкретного провайдера в проекте. Для provisioning через CLI источник отдельно ограничивает набор: Google Sign In, anonymous auth и email/password можно включать командным способом, а остальные провайдеры следует включать в Firebase Console. В firebase.json предлагается auth-блок с authorizedDomains и настройками providers. Для локальной разработки в список доменов добавляется localhost без протокола и номера порта. Ошибка unauthorized-domain при закрывающемся Google Sign-In popup трактуется как признак того, что домен не авторизован. После изменения firebase.json требуется deploy --only auth, иначе конфигурация не попадёт в Firebase backend. Для настройки через консоль навык направляет в раздел Authentication providers проекта Firebase, где можно выбрать и включить нужные провайдеры. Клиентская часть разделена по платформам: для Web, Flutter и Android на Kotlin источник указывает отдельные reference-файлы. Защита данных вынесена в security rules: для Firestore и Storage предлагается использовать request.auth. Таким образом, вход, выпуск токена и проверка доступа образуют разные этапы, и одного факта успешной аутентификации недостаточно для корректной защиты каждого ресурса. Карточка полезна как стартовый маршрут для проекта, которому нужно включить sign-in, выбрать провайдеров, связать uid с данными и настроить базовые auth rules. Она также подсказывает, где искать платформенные примеры и как диагностировать типовую проблему с authorized domains. Ограничения нужно учитывать заранее: конкретная настройка остальных провайдеров выполняется через Console, для Web, Flutter и Kotlin Android нужны соответствующие reference-материалы, а правила Firestore и Storage требуют отдельного проектирования. Источник не заявляет, что навык заменяет полноценный security-аудит или проверку готового приложения. Безопасный порядок работы по этой карточке — сначала создать проект и авторизовать CLI, затем выбрать провайдеров, проверить домены и применить auth-конфигурацию deploy-командой. После этого настроить клиентскую библиотеку нужной платформы, проверить жизненный цикл ID и refresh токенов и отдельно проверить правила, использующие request.auth. Такой порядок следует подтверждённым этапам источника и не смешивает provisioning, клиентскую интеграцию и контроль доступа в одну непроверяемую операцию.
Для чего подходит
- Настройка Firebase Authentication
- Проектирование sign-in и user management
- Проверка правил доступа к данным
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/firebase/agent-skills/tree/main/skills/firebase-auth-basics