This skill should be used when initializing a new Firebase project with proven architecture. Triggers on "new firebase project", "initialize firebase", "firebase init", "set up firebase", "create firebase app", "start firebase project". Guides through CLI setup, architecture choices, and emulator configuration.
This sub-skill guides initializing a new Firebase project with proven architecture patterns. It handles Firebase CLI setup, architecture decisions, emulator configuration, and initial project structure.
Key principles:
Do not use for:
firebase-development:add-featurefirebase-development:debugUse AskUserQuestion to gather these four decisions upfront:
Reference: docs/examples/multi-hosting-setup.md
Reference: docs/examples/api-key-authentication.md
Reference: docs/examples/express-function-architecture.md
Reference: docs/examples/firestore-rules-patterns.md
Create checklist with these 14 steps:
firebase --version # Install via npm install -g firebase-tools if missing
firebase login
mkdir my-firebase-project && cd my-firebase-project
git init && git branch -m main
Create .gitignore with: node_modules/, .env, .env.local, .firebase/, lib/, dist/
firebase init
Select: Firestore, Functions, Hosting, Emulators. Choose TypeScript for functions.
Use AskUserQuestion for the four decisions above.
Set up based on hosting decision. Critical emulator settings:
{
"emulators": {
"singleProjectMode": true,
"ui": { "enabled": true, "port": 4000 }
}
}
Reference: docs/examples/multi-hosting-setup.md
Based on architecture choice:
Express: Create middleware/, tools/, services/, shared/
Domain-Grouped: Create shared/types/, shared/validators/
Individual: Create functions/
Install dependencies: express, cors, firebase-admin, firebase-functions, vitest, biome
Create functions/src/index.ts with ABOUTME comments. Include health check endpoint for Express pattern.
Reference: docs/examples/express-function-architecture.md
Based on security model decision. Always include:
isAuthenticated(), isOwner())Reference: docs/examples/firestore-rules-patterns.md
Create vitest.config.ts and vitest.emulator.config.ts. Set up __tests__/ and __tests__/emulator/ directories.
Create biome.json with recommended rules. Run npm run lint:fix.
Create .env.example template. Copy to .env and fill in values.
For hosting: create hosting/.env.local with NEXT_PUBLIC_USE_EMULATORS=true.
git add . && git commit -m "feat: initial Firebase project setup"
firebase emulators:start
open http://127.0.0.1:4000
Verify all services start. Test health endpoint if using Express.
Create functions/src/__tests__/setup.test.ts with basic verification. Run npm test.
Before marking complete:
npm run buildnpm testnpm run lint.env files created and gitignoredExpress API:
functions/src/
├── index.ts
├── middleware/apiKeyGuard.ts
├── tools/
├── services/
└── __tests__/
Domain-Grouped:
functions/src/
├── index.ts
├── posts.ts
├── users.ts
├── shared/types/
└── __tests__/
Individual Files:
functions/
├── functions/upload.ts
├── functions/process.ts
└── index.js
After setup complete:
firebase-development:add-featurefirebase-development:validatefirebase-development:debugdocs/examples/multi-hosting-setup.mddocs/examples/api-key-authentication.mddocs/examples/express-function-architecture.mddocs/examples/firestore-rules-patterns.mddocs/examples/emulator-workflow.mdnpx skills add aiskillstore/firebase-development-project-setup下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer