Эта подсказка поможет вашему ИИ-помощнику (например, Gemini CLI ) генерировать и уточнять Firebase Security Rules для вашего приложения. Вы можете использовать подсказку для составления Security Rules для распространенных сценариев использования, таких как предоставление доступа конкретным пользователям, реализация разрешений на основе ролей и проверка данных.
Данный запрос посвящен созданию Security Rules для:
- Cloud Firestore : Защищайте коллекции и документы в соответствии с логикой вашего приложения.
- Cloud Storage for Firebase : проверка прав доступа к хранящимся файлам.
Использование этой подсказки поможет вам начать работу с надежной системой безопасности, но перед развертыванием в производственной среде всегда следует тщательно тестировать Security Rules . Для получения дополнительной информации о тестировании Security Rules ознакомьтесь с разделом «Начало работы с Firebase Security Rules : тестирование Security Rules .
Предварительные требования
- Ознакомьтесь с рекомендациями по использованию Firebase Security Rules .
- Для запуска модульных тестов Firebase Security Rules и использования Firebase Local Emulator Suite установите Node.js и Firebase CLI . Полные инструкции см. в Firebase Local Emulator Suite .
- Рекомендуется: Если вы еще этого не сделали, установите Gemini CLI . Следующие инструкции объясняют, как установить и использовать расширение Firebase для Gemini CLI для генерации Security Rules . Если вы предпочитаете использовать другого ИИ-помощника, вы можете скопировать и вставить запрос для Cloud Firestore или Cloud Storage for Firebase из репозитория
firebase-toolsв выбранного вами ИИ-помощника. - Расширение Firebase для Gemini CLI подключается к серверу Firebase MCP для доступа к запросам, которые генерируют и проверяют Firebase Security Rules , а также помогают в тестировании и развертывании Security Rules . Перед использованием расширения для генерации Firebase Security Rules необходимо установить сервер Firebase MCP .
Ограничения
Мы активно работаем над улучшением этого сервиса, поэтому этот список ограничений может измениться. Регулярно проверяйте обновления.
Данная команда предназначена для генерации Firebase Security Rules для Cloud Firestore и Cloud Storage for Firebase . Она пока не способна генерировать Security Rules для Firebase Realtime Database .
Firebase Security Rules не вызываются при доступе к вашей базе данных или хранилищу с сервера или из другой серверной среды, например, при использовании Firebase Admin SDK . Если вы используете Admin SDK , вы сами отвечаете за управление авторизацией и проверкой данных в своем серверном коде.
Gemini в Firebase работающий в консоли Firebase не может генерировать Firebase Security Rules , даже при использовании этого запроса. Вместо этого используйте альтернативного помощника на основе ИИ, имеющего доступ к вашему коду, например Gemini CLI (описание которого приведено на этой странице).
Воспользуйтесь подсказкой
Эта функция доступна через возможности Security Rules в расширении Firebase для Gemini CLI и позволяет генерировать Security Rules и тесты. Расширение анализирует исходный код, помогая выявлять схемы данных и шаблоны доступа для Cloud Firestore и Cloud Storage . Оно предназначено для составления Security Rules на основе принципа минимальных привилегий и пытается выявить уязвимости с помощью итеративных симуляций «атак». Для окончательной проверки предоставляется начальный набор модульных тестов с использованием @firebase/rules-unit-testing , позволяющий локально проверить логику безопасности с помощью набора Firebase Local Emulator Suite .
Для использования этого расширения необходимо выполнить три шага, которые описаны в этом разделе:
Шаг 1 : Создание Security Rules и тестов.
Установите и запустите расширение:
Установите расширение Firebase для Gemini CLI :
gemini extensions install https://github.com/gemini-cli-extensions/firebaseЗапустите Gemini CLI :
geminiЗапустите расширение из корневой папки вашего проекта, чтобы сгенерировать Security Rules для Cloud Firestore или Cloud Storage :
Создание Security Rules для Cloud Firestore :
/firestore:generate_security_rulesВ родительском каталоге расширение создает файл
firestore.rulesи новый каталогsecurity_rules_test_firestore, содержащий проект Node.js с модульными тестами для сгенерированных Security Rules .Создание Security Rules для Cloud Storage for Firebase :
/storage:generate_security_rulesВ родительском каталоге расширение создает файл
storage.rulesи новый каталогsecurity_rules_test_storage, содержащий проект Node.js с модульными тестами для сгенерированных Security Rules .
Шаг 2 : Проверка результатов проверки и тестирования Security Rules
Убедитесь, что ваш ИИ-помощник выполнил следующие действия. После запуска расширения вы должны получить сгенерированное резюме.
Проверка синтаксиса : После генерации Security Rules Gemini CLI автоматически проверяет синтаксис с помощью команды
firebase_validate_security_rulesс сервера Firebase MCP.Модульные тесты : После проверки синтаксиса Gemini CLI пытается запустить сгенерированные модульные тесты, используя Firebase Local Emulator Suite .
Если тесты не запускаются автоматически, запустите Firebase Local Emulator Suite в отдельном терминале , а затем используйте один из следующих вариантов для запуска тестов:
Вариант 1: Дать команду Gemini CLI на запуск тестов:
Firebase Emulator Suite is running in a separate terminal. Please execute the tests.Вариант 2: Запустите тесты вручную, следуя инструкциям в файле
README.md, расположенном в каталогеrules_testилиstorage_rules_test.
Шаг 3 : Разверните Security Rules в вашем проекте Firebase.
Когда вы будете удовлетворены результатом создания Security Rules , используйте следующие команды Firebase CLI для развертывания Security Rules в вашем проекте Firebase:
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage for Firebase
firebase deploy --only storage
Дополнительные ресурсы
- Для дополнительной помощи в обеспечении безопасности вы также можете использовать расширение безопасности для Gemini CLI — расширение с открытым исходным кодом, которое анализирует изменения кода для выявления рисков и уязвимостей в области безопасности.