Эта подсказка поможет вашему ИИ-помощнику, например Gemini CLI , генерировать и уточнять Firebase Security Rules для вашего приложения. Вы можете использовать подсказку для создания Rules для распространенных сценариев использования, таких как предоставление доступа конкретным пользователям, реализация разрешений на основе ролей и проверка данных.
Данное задание направлено на создание Rules для:
- Cloud Firestore : Защищайте коллекции и документы в соответствии с логикой вашего приложения.
- Cloud Storage for Firebase : проверка прав доступа к хранящимся файлам.
Использование этой подсказки поможет вам начать работу с надежной системой безопасности, но перед развертыванием в производственной среде всегда следует тщательно тестировать ваши Rules . Для получения дополнительной информации о тестировании Rules ознакомьтесь с разделом «Начало работы с Firebase Security Rules : тестирование правил» .
Предварительные требования
- Ознакомьтесь с передовыми методами обеспечения безопасности .
- Для запуска модульных тестов Firebase Security Rules и использования Firebase Local Emulator Suite установите Node.js и Firebase CLI . Полные инструкции см. в разделе «Установка, настройка и интеграция локального эмулятора» .
- Рекомендуется: Если вы еще этого не сделали, установите Gemini CLI . Следующие инструкции объясняют, как установить и использовать расширение Gemini CLI для генерации Rules ; если вы предпочитаете использовать другого ИИ-помощника, вы можете скопировать и вставить подсказку из репозитория в выбранного вами ИИ-помощника.
- Это расширение Gemini CLI использует сервер Firebase MCP для проверки генерируемых им Firebase Security Rules . Сервер MCP также можно использовать для упрощения тестирования и развертывания ваших Rules . Перед использованием расширения для генерации Firebase Security Rules установите сервер Firebase MCP .
Ограничения
Мы активно работаем над улучшением этого сервиса, поэтому этот список ограничений может измениться. Регулярно проверяйте обновления.
- Gemini в Firebase не может генерировать Firebase Security Rules . Используйте альтернативного помощника на основе ИИ, например Gemini CLI .
- Данная команда предназначена для генерации Firebase Security Rules для Cloud Firestore и Cloud Storage for Firebase . Она пока не способна генерировать Rules для Firebase Realtime Database .
- Firebase Security Rules не вызываются при доступе к вашей базе данных или хранилищу с сервера или из другой серверной среды, например, при использовании Firebase Admin SDK . Если вы используете Admin SDK , вы сами отвечаете за управление авторизацией и проверкой данных в своем серверном коде.
Воспользуйтесь подсказкой
Используйте экспериментальное расширение Gemini CLI для Firebase Security Rules , чтобы генерировать правила и тесты.
Это расширение анализирует ваш исходный код, чтобы помочь определить схемы данных и шаблоны доступа для Cloud Firestore и Cloud Storage . Оно предназначено для составления Rules на основе принципа минимальных привилегий и пытается выявить уязвимости с помощью итеративных симуляций «атак». Для облегчения окончательной проверки оно предоставляет начальный набор модульных тестов с использованием
@firebase/rules-unit-testing, что позволяет проверить вашу логику безопасности локально с помощью набора локальных эмуляторов Firebase.Для установки и использования расширения:
Установите расширение Gemini CLI :
gemini extensions install https://github.com/firebase/snippets-rulesОткройте Gemini CLI .
gemini
Запустите расширение из корневой папки вашего проекта, чтобы сгенерировать правила для Cloud Firestore :
/firebase-rules:firestore Generate rules using PROJECT ID PROJECT_IDИли сгенерируйте правила для Cloud Storage :
/firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
Расширение создает в корневой директории вашего проекта каталог
rules_testдля Cloud Firestore илиstorage_rules_testдля Cloud Storage . Этот новый каталог содержит сгенерированный файл.rules, а также проект Node.js с модульными тестами.Проверка правил и результатов тестирования:
- Проверка синтаксиса — После генерации правил Gemini CLI автоматически проверяет синтаксис с помощью команды
firebase_validate_security_rulesс сервера Firebase MCP. - Модульные тесты — После проверки синтаксиса Gemini CLI пытается запустить сгенерированные модульные тесты, используя Firebase Local Emulator Suite . Для запуска тестов необходимо запустить Firebase Local Emulator Suite в отдельном терминале.
Если тесты не запускаются автоматически, запустите Firebase Local Emulator Suite в отдельном терминале , а затем используйте один из следующих вариантов для запуска тестов:
* Instruct Gemini CLI to run tests: ```none Firebase Emulator Suite is running in a separate terminal. Please execute the tests. ``` * Run tests manually by following the instructions in the `README.md` file in the `rules_test` or `storage_rules_test` directory.- Проверка синтаксиса — После генерации правил Gemini CLI автоматически проверяет синтаксис с помощью команды
Когда вы будете удовлетворены результатом создания Rules , используйте следующую команду Firebase CLI для развертывания Rules .
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage
firebase deploy --only storage
Дополнительные ресурсы
- Для дополнительной помощи в обеспечении безопасности вы также можете использовать расширение безопасности для Gemini CLI — расширение с открытым исходным кодом, которое анализирует изменения кода для выявления рисков и уязвимостей в области безопасности.