firebase-deployer
Deploy Firebase Firestore security rules and indexes automatically. Use when Firestore query errors mention "requires an index", when firestore.rules or firestore.indexes.json are modified, or when user requests Firebase deployment.
About firebase-deployer
firebase-deployer is a Claude AI skill developed by ainexllc. Deploy Firebase Firestore security rules and indexes automatically. Use when Firestore query errors mention "requires an index", when firestore.rules or firestore.indexes.json are modified, or when user requests Firebase deployment. This powerful Claude Code plugin helps developers automate workflows and enhance productivity with intelligent AI assistance.
Why use firebase-deployer? With 0 stars on GitHub, this skill has been trusted by developers worldwide. Install this Claude skill instantly to enhance your development workflow with AI-powered automation.
| name | firebase-deployer |
| description | Deploy Firebase Firestore security rules and indexes automatically. Use when Firestore query errors mention "requires an index", when firestore.rules or firestore.indexes.json are modified, or when user requests Firebase deployment. |
| allowed-tools | Bash, Read, Edit |
Firebase Deployer
When to Use
Activate this skill when:
- Firestore query errors indicate missing indexes
- User modifies
firestore.rulesorfirestore.indexes.json - User requests "deploy firebase rules" or "deploy indexes"
- Error messages mention "FAILED_PRECONDITION" or "composite index"
- User says "deploy firebase", "push rules", or "update firestore"
- New Firestore queries need composite indexes
- Security rules need updating for new features
Instructions
Step 1: Identify What Needs Deployment
- Check for modified files:
git status | grep -E "(firestore.rules|firestore.indexes.json)"
- If query error occurred, extract index requirements from error message:
- Collection name
- Fields being queried
- Order direction (ASCENDING/DESCENDING)
- Query filters (array-contains, etc.)
Step 2: Update Index Configuration (if needed)
If missing index detected:
- Read current indexes:
cat firestore.indexes.json
- Add new index to
firestore.indexes.json:
{ "indexes": [ { "collectionGroup": "collection_name", "queryScope": "COLLECTION", "fields": [ { "fieldPath": "field1", "order": "ASCENDING" }, { "fieldPath": "field2", "order": "DESCENDING" } ] } ] }
Step 3: Verify Firebase Project
- Check current project:
firebase use
- If project not set or wrong project:
firebase use project-id
- Verify configuration:
firebase projects:list
Step 4: Deploy Rules and Indexes
Deploy both rules and indexes together:
firebase deploy --only firestore:rules,firestore:indexes
Or deploy separately:
# Deploy only indexes firebase deploy --only firestore:indexes # Deploy only rules firebase deploy --only firestore:rules
Step 5: Verify Deployment
- Check index status:
firebase firestore:indexes
-
Monitor index building (can take several minutes):
- Indexes show as "Building" initially
- Check Firebase Console for progress
- Wait for "Ready" status before querying
-
Test the query that triggered the error
Examples
Example 1: Deploy After Query Error
# Error received: # "The query requires an index. You can create it here: https://console.firebase.google.com/..." # Step 1: Extract index requirements from error URL # Collection: posts # Fields: userId (ASCENDING), createdAt (DESCENDING) # Step 2: Update firestore.indexes.json # (use Edit tool to add index) # Step 3: Deploy firebase deploy --only firestore:indexes # Step 4: Verify firebase firestore:indexes
Example 2: Deploy Modified Security Rules
# User modified firestore.rules to add new collection rules # Step 1: Verify changes cat firestore.rules # Step 2: Deploy rules only firebase deploy --only firestore:rules # Step 3: Verify in console # Check Firebase Console > Firestore > Rules
Example 3: Deploy Both Rules and Indexes
# User updated both rules and indexes # Deploy together for consistency firebase deploy --only firestore:rules,firestore:indexes # Verify both firebase firestore:indexes # Check console for rules
Example 4: Multi-Project Deployment
# Deploy to specific project firebase deploy --only firestore:rules,firestore:indexes --project production-id # Switch project for subsequent deploys firebase use staging-id firebase deploy --only firestore:rules,firestore:indexes
Best Practices
✅ DO:
- Always verify current Firebase project before deploying
- Deploy rules and indexes together when both changed
- Test queries after index deployment completes
- Check index status after deployment
- Read error messages carefully to extract index requirements
- Deploy to staging environment first (if available)
- Wait for indexes to finish building before testing
- Keep firestore.indexes.json in version control
❌ DON'T:
- Don't deploy without checking current project
- Don't assume indexes are ready immediately (they build asynchronously)
- Don't deploy rules that could break production
- Don't ignore index URL in error messages (contains exact requirements)
- Don't delete indexes still in use by queries
- Don't deploy without reviewing changes first
- Don't forget to commit firestore.indexes.json after adding indexes
Index Configuration Tips:
-
Query Scope:
COLLECTION: Index for specific collectionCOLLECTION_GROUP: Index across all collections with same name
-
Field Order:
- List fields in query order
- Use
ASCENDINGorDESCENDINGto match query - Array-contains queries need special handling
-
Compound Indexes:
- Required for queries with multiple filters
- Required for orderBy on different field than filter
- Required for inequality filters on multiple fields
-
Index Exemptions:
- Single field ascending/descending: Auto-indexed
- Simple equality queries: Usually auto-indexed
- Check Firestore docs for exemption list
Security Rules Best Practices:
- Default Deny:
match /{document=**} { allow read, write: if false; }
- Authenticated Users:
match /users/{userId} { allow read, write: if request.auth != null && request.auth.uid == userId; }
- Field Validation:
match /posts/{postId} { allow create: if request.auth != null && request.resource.data.title is string && request.resource.data.title.size() <= 100; }
Deployment Checklist
Before deploying:
- Verified correct Firebase project
- Reviewed changes to rules/indexes
- Tested rules in Firebase Console simulator (if changed)
- No breaking changes to production queries
- Index configuration matches query requirements
- Have backup of previous rules (git history)
After deploying:
- Verified deployment success message
- Checked index status (building/ready)
- Tested queries that use new indexes
- Monitored for errors in Firebase Console
- Committed firestore.indexes.json changes
Troubleshooting
Issue: "Project not found" error
Solution: Run firebase use project-id or firebase projects:list
Issue: "Permission denied" during deployment
Solution: Re-authenticate with firebase login or check IAM roles
Issue: Index still showing as "Building" after long time Solution: Normal for large collections. Check Firebase Console for progress.
Issue: Query still failing after index deployment Solution: Verify index matches exact query requirements (field order, direction)
Issue: Rules deployment breaks existing queries Solution: Review rules for overly restrictive conditions. Test in simulator first.
Issue: Multiple index errors for same query Solution: Create single composite index with all required fields
Firebase CLI Commands Reference
# Project management firebase projects:list # List all projects firebase use project-id # Switch to project firebase use --add # Add project alias # Deployment firebase deploy --only firestore:rules # Deploy rules only firebase deploy --only firestore:indexes # Deploy indexes only firebase deploy --only firestore # Deploy both # Index management firebase firestore:indexes # List all indexes firebase firestore:indexes --status # Show build status # Verification firebase use # Show current project firebase projects:list # Verify project access # Authentication firebase login # Re-authenticate firebase logout # Sign out firebase login:list # List authenticated accounts
Integration with Development Workflow
-
During Development:
- Write Firestore queries
- Note index errors
- Add indexes to firestore.indexes.json
- Deploy immediately
-
Before Committing:
- Ensure all indexes deployed
- Verify rules match new features
- Test queries in development
-
Before Production Deploy:
- Deploy indexes to production first
- Wait for indexes to build
- Then deploy application code
- Verify queries work in production
Error Message Patterns
Common error messages that trigger this skill:
- Missing Index:
The query requires an index. You can create it here: https://...
- Failed Precondition:
FAILED_PRECONDITION: The query requires an index...
- Permission Denied (rules issue):
Missing or insufficient permissions
- Invalid Argument:
Cannot have inequality filters on multiple properties
Extract index requirements and deploy accordingly.

ainexllc
ClaudeCodeTraining
Download Skill Files
View Installation GuideDownload the complete skill directory including SKILL.md and all related files