Cette invite peut aider votre assistant IA, tel que Gemini CLI, à générer et à affiner Firebase Security Rules pour votre application. Vous pouvez utiliser l'invite pour rédiger Rules pour des cas d'utilisation courants, tels que l'octroi d'un accès spécifique à l'utilisateur, l'implémentation d'autorisations basées sur les rôles et la validation des données.
Cette requête vise à générer Rules pour :
- Cloud Firestore : sécurisez les collections et les documents en fonction de la logique de votre application.
- Cloud Storage for Firebase : validez les autorisations d'accès à vos fichiers stockés.
Cette requête peut vous aider à adopter une stratégie de sécurité solide, mais vous devez toujours tester minutieusement votre Rules avant de le déployer en production. Pour en savoir plus sur le test de Rules, consultez Premiers pas avec Firebase Security Rules : tester vos règles.
Prérequis
- Familiarisez-vous avec les bonnes pratiques concernant les règles de sécurité.
- Pour exécuter des tests unitaires pour Firebase Security Rules et utiliser Firebase Local Emulator Suite, installez Node.js et l'interface de ligne de commande Firebase. Pour obtenir des instructions complètes, consultez Installer, configurer et intégrer Local Emulator Suite.
- Recommandation : si ce n'est pas déjà fait, installez Gemini CLI. Les instructions suivantes expliquent comment installer et utiliser une extension Gemini CLI pour générer Rules. Si vous préférez utiliser un autre assistant d'IA, vous pouvez copier et coller la requête depuis le dépôt dans l'assistant d'IA de votre choix.
- Cette extension Gemini CLI utilise le serveur Firebase MCP pour valider le Firebase Security Rules qu'elle génère. Le serveur MCP peut également être utilisé pour faciliter les tests et le déploiement de votre Rules. Installez le serveur Firebase MCP avant d'utiliser l'extension pour générer Firebase Security Rules.
Limites
Nous mettons tout en œuvre pour améliorer cette fonctionnalité. Cette liste de limites est donc susceptible d'évoluer. Consultez cette page régulièrement pour vous tenir informé.
- Gemini dans Firebase n'est pas en mesure de générer Firebase Security Rules. Utilisez un autre assistant IA, tel que Gemini CLI.
- La requête est conçue pour générer Firebase Security Rules pour Cloud Firestore et Cloud Storage for Firebase. Il n'est pas encore capable de générer des Rules pour Firebase Realtime Database.
- Firebase Security Rules ne sont pas appelées lorsque vous accédez à votre base de données ou à votre bucket depuis un serveur ou un autre environnement de backend, par exemple lorsque vous utilisez Firebase Admin SDK. Si vous utilisez Admin SDK, vous êtes responsable de la gestion de l'autorisation et de la validation des données dans votre code de backend.
Utiliser le prompt
Utilisez l'extension expérimentale Gemini CLI pour Firebase Security Rules afin de générer vos règles et vos tests.
Cette extension analyse votre code source pour vous aider à identifier les schémas de données et les modèles d'accès pour Cloud Firestore et Cloud Storage. Il est conçu pour rédiger des Rules en fonction du principe du moindre privilège et tente de découvrir les failles grâce à des simulations d'attaques itératives. Pour vous aider à effectuer la validation finale, il fournit une suite de tests unitaires de départ à l'aide de
@firebase/rules-unit-testing, ce qui vous permet de valider votre logique de sécurité en local à l'aide de la suite d'émulateurs locaux Firebase.Pour installer et utiliser l'extension :
Installez l'extension Gemini CLI :
gemini extensions install https://github.com/firebase/snippets-rulesOuvrez Gemini CLI.
gemini
À partir de la racine de votre projet, exécutez l'extension pour générer des règles pour Cloud Firestore :
/firebase-rules:firestore Generate rules using PROJECT ID PROJECT_IDVous pouvez également générer des règles pour Cloud Storage :
/firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
L'extension crée un répertoire
rules_testpour Cloud Firestore ou un répertoirestorage_rules_testpour Cloud Storage dans la racine de votre projet. Ce nouveau répertoire contient le fichier.rulesgénéré, ainsi qu'un projet Node.js avec des tests unitaires.Examinez la validation des règles et les résultats des tests :
- Validation de la syntaxe : après avoir généré des règles, Gemini CLI valide automatiquement la syntaxe à l'aide de la commande
firebase_validate_security_rulesdu serveur Firebase MCP. - Tests unitaires : après avoir validé la syntaxe, Gemini CLI tente d'exécuter les tests unitaires générés à l'aide de Firebase Local Emulator Suite. Pour que les tests s'exécutent, vous devez exécuter Firebase Local Emulator Suite dans un terminal distinct.
Si les tests ne s'exécutent pas automatiquement, démarrez Firebase Local Emulator Suite dans un terminal distinct, puis utilisez l'une des options suivantes pour exécuter les tests :
* 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.- Validation de la syntaxe : après avoir généré des règles, Gemini CLI valide automatiquement la syntaxe à l'aide de la commande
Lorsque vous êtes satisfait du résultat de votre Rules généré, utilisez la commande CLI Firebase suivante pour déployer le Rules.
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage
firebase deploy --only storage
Autres ressources
- Pour obtenir de l'aide supplémentaire concernant votre posture de sécurité, vous pouvez également utiliser l'extension de sécurité pour Gemini CLI, une extension Open Source qui analyse les modifications de code pour identifier les risques et les failles de sécurité.