aiskillstore/marketplace-firebase-development-debug
This skill should be used when troubleshooting Firebase emulator issues, rules violations, function errors, auth problems, or deployment failures. Triggers on "error", "not working", "debug", "troubleshoot", "failing", "broken", "permission denied", "emulator issue".
This is a copy. The original lives at comeonoliver/firebase-development-debug.
npx skills add https://github.com/aiskillstore/marketplace --skill firebase-development-debug
This sub-skill guides systematic troubleshooting of Firebase development issues. It handles emulator problems, rules violations, function errors, auth issues, and deployment failures.
Key principles:
Do not use for:
firebase-development:project-setupfirebase-development:add-featurefirebase-development:validateCreate checklist with these 10 steps:
Categorize the error:
| Category | Symptoms | Keywords |
|----------|----------|----------|
| Emulator Won't Start | Port conflicts, initialization errors | "EADDRINUSE", "emulator failed" |
| Rules Violation | Permission denied on read/write | "PERMISSION_DENIED", "insufficient" |
| Function Error | HTTP 500, timeout, not executing | "function failed", "timeout" |
| Auth Issue | Token errors, not authenticated | "auth failed", "invalid token" |
| Deployment Failure | Deploy command fails | "deployment failed", "deploy error" |
If unclear, use AskUserQuestion to clarify issue type.
For running emulators: Watch terminal output while reproducing the issue.
For emulators that won't start:
lsof -i :4000 && lsof -i :5001 && lsof -i :8080 # Check ports
kill -9 <PID> # Kill conflicting process
For deployment errors: Check firebase-debug.log
Reference: docs/examples/emulator-workflow.md
open http://127.0.0.1:4000
Use Emulator UI to:
In Emulator UI → Firestore → Rules Playground:
Reference: docs/examples/firestore-rules-patterns.md
Add strategic console.log statements:
Watch terminal output while reproducing.
Reference: docs/examples/express-function-architecture.md
Check environment variables:
cat functions/.env
cat hosting/.env.local # Should have NEXT_PUBLIC_USE_EMULATORS=true
Check emulator connection in client code and API key middleware.
Reference: docs/examples/api-key-authentication.md
cat firebase-debug.log # Full error details
cat firebase.json # Config issues
cat .firebaserc # Project ID
firebase target:list # Verify targets
Test predeploy hooks locally:
cd functions && npm run build
Before making fixes:
# Graceful shutdown (Ctrl+C exports automatically)
# Or manual export:
firebase emulators:export ./backup-data
Verify export: ls -la .firebase/emulator-data/
Apply fix based on diagnosis, then:
firebase emulators:start --import=.firebase/emulator-data
Verify:
Create entry in docs/debugging-notes.md:
| Issue | Solution |
|-------|----------|
| Port conflicts | lsof -i :<port>, kill process |
| Data persistence lost | Use Ctrl+C (not kill) to stop emulators |
| Cold start delays | First call takes 5-10s (normal) |
| Rules not reloading | Restart emulators |
| Admin vs Client SDK | Admin bypasses rules, client respects them |
| Missing CORS | Add app.use(cors({ origin: true })) |
| Emulator connection | Set NEXT_PUBLIC_USE_EMULATORS=true |
| API key prefix | Verify prefix matches actual keys |
If Firebase-specific tools don't reveal root cause, invoke superpowers:systematic-debugging for:
docs/examples/emulator-workflow.mddocs/examples/firestore-rules-patterns.mddocs/examples/api-key-authentication.mddocs/examples/express-function-architecture.mdTake aiskillstore/marketplace-firebase-development-debug from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.