Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
spillwavesolutions avatar

Using Firebase

  • 25 installs
  • 2 repo stars
  • Updated December 29, 2025
  • spillwavesolutions/using-firebase

Helps with ai & agent building tasks during AI-assisted development.

About

using-firebase is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • using-firebase
  • AI & Agent Building
  • AI-coding skill

Using Firebase by the numbers

  • 25 all-time installs (skills.sh)
  • Ranked #9,800 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/spillwavesolutions/using-firebase --skill using-firebase

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs25
repo stars2
Last updatedDecember 29, 2025
Repositoryspillwavesolutions/using-firebase

What it does

Helps with ai & agent building tasks during AI-assisted development.

Files

SKILL.mdMarkdownGitHub ↗

Firebase Development Skill

Table of Contents

Quick Start

1. New project: Run scripts/init_project.sh [project-id] 2. Local development: Run scripts/start_emulators.sh 3. Deploy: Run scripts/deploy.sh

Scope

Use this skill for: Firebase development including Firestore CRUD/queries, Cloud Functions (1st/2nd gen), Firebase CLI, emulator setup, security rules, authentication, hosting, and GCP integration.

Do not use for: Pure GCP without Firebase, AWS/Azure services, non-serverless architectures, self-hosted solutions, or complex relational queries (use Cloud SQL instead).

Task Navigation

TaskAction
Initialize Firebase projectscripts/init_project.sh
Start local emulatorsscripts/start_emulators.sh
Deploy to productionscripts/deploy.sh
Deploy functions onlyscripts/deploy_functions.sh
Set up Python functionspython scripts/setup_python_functions.py
Manage secretsscripts/manage_secrets.sh
Export Firestore datascripts/export_firestore.sh
Import Firestore datascripts/import_firestore.sh
TopicReference
CLI commandsreferences/cli-commands.md
Firestore CRUD, queries, modelingreferences/firestore.md
Cloud Functions triggersreferences/functions-triggers.md
Error handling, optimizationreferences/functions-patterns.md
Security rulesreferences/security-rules.md
Authenticationreferences/auth-integration.md
Hosting configurationreferences/hosting-config.md
GCP integrationreferences/gcp-integration.md

Scripts

For complete CLI reference, see references/cli-commands.md.

init_project.sh

Initialize Firebase project with Firestore, Functions, Hosting, Storage, Emulators.

./scripts/init_project.sh              # Interactive
./scripts/init_project.sh my-project   # Specific project

start_emulators.sh

Start emulator suite with data persistence.

./scripts/start_emulators.sh                    # Auto-persistence
./scripts/start_emulators.sh --debug            # Enable debugging
./scripts/start_emulators.sh --import ./backup  # Import data
./scripts/start_emulators.sh --only functions,firestore

deploy.sh

Deploy with safety confirmations.

./scripts/deploy.sh                     # Full deploy
./scripts/deploy.sh --dry-run           # Preview only
./scripts/deploy.sh --only hosting      # Specific target
./scripts/deploy.sh --force             # Skip confirmation

deploy_functions.sh

Deploy Cloud Functions with granular control.

./scripts/deploy_functions.sh                    # All functions
./scripts/deploy_functions.sh myFunction         # Single function
./scripts/deploy_functions.sh --codebase python  # Specific codebase

manage_secrets.sh

Manage Cloud Functions secrets for 2nd gen functions. Uses GCP Secret Manager for secure storage. Prefer this script over direct gcloud commands for Firebase-integrated secret management with proper function access binding.

Secret lifecycle: Create secrets before first deploy, update via set (creates new version), bind to functions via runWith({ secrets: [...] }), and rotate by setting new values.

./scripts/manage_secrets.sh set API_KEY      # Set secret (creates or updates)
./scripts/manage_secrets.sh get API_KEY      # View metadata and versions
./scripts/manage_secrets.sh list             # List all project secrets
./scripts/manage_secrets.sh delete API_KEY   # Delete secret and all versions

export_firestore.sh / import_firestore.sh

Backup and restore Firestore data.

./scripts/export_firestore.sh --emulator              # From emulator
./scripts/export_firestore.sh --output gs://bucket    # Production to GCS
./scripts/import_firestore.sh --input ./data --emulator

setup_python_functions.py

Create Python Cloud Functions project.

python scripts/setup_python_functions.py --path python-functions --codebase python

Cloud Functions Generation

Use 2nd generation (recommended):

  • HTTP, Firestore, Storage, Scheduled, Pub/Sub triggers
  • Higher concurrency, longer timeouts

Use 1st generation only for:

  • Auth onCreate/onDelete triggers (not available in 2nd gen)

2nd Gen Example (TypeScript)

import { onDocumentCreated } from "firebase-functions/v2/firestore";
import { onRequest } from "firebase-functions/v2/https";

export const onUserCreated = onDocumentCreated("users/{userId}", (event) => {
  console.log("New user:", event.params.userId, event.data?.data());
});

export const api = onRequest({ cors: true }, (req, res) => {
  res.json({ status: "ok" });
});

1st Gen Auth Trigger

import * as functions from "firebase-functions/v1";

export const onUserCreate = functions.auth.user().onCreate((user) => {
  console.log("New user:", user.uid);
  return null;
});

See references/functions-triggers.md for all trigger types with TypeScript and Python examples.

Assets

FileUse
assets/firebase.json.templateCopy to firebase.json and customize
assets/firestore.rules.templateCopy to firestore.rules
assets/storage.rules.templateCopy to storage.rules
assets/tsconfig.functions.jsonCopy to functions/tsconfig.json

Common Workflows

New Project Setup

1. Run scripts/init_project.sh 2. Copy templates from assets/ directory 3. Start emulators: scripts/start_emulators.sh

Add Python Functions

1. Run python scripts/setup_python_functions.py 2. Update firebase.json with provided config 3. Deploy: scripts/deploy_functions.sh --codebase python

Security Rules Development

1. Start with assets/firestore.rules.template 2. Test with emulator 3. Deploy: firebase deploy --only firestore:rules

See references/security-rules.md for patterns.

Production Deployment

1. Set secrets: scripts/manage_secrets.sh set API_KEY 2. Dry run: scripts/deploy.sh --dry-run 3. Deploy: scripts/deploy.sh

Pre-Deployment Checklist

Before deploying to production, verify:

  • [ ] Security Rules: Tested rules in emulator, no open access patterns
  • [ ] Secrets: All required secrets configured via scripts/manage_secrets.sh list
  • [ ] Environment: Correct project selected (firebase use)
  • [ ] Functions: All functions tested locally with emulator
  • [ ] Indexes: Firestore indexes deployed (firebase deploy --only firestore:indexes)
  • [ ] Dry Run: scripts/deploy.sh --dry-run shows expected changes
  • [ ] App Check: Enabled for production apps (prevents abuse)
  • [ ] Billing: Budget alerts configured in GCP Console
  • [ ] Monitoring: Cloud Logging and Error Reporting enabled

Emulator Ports

ServicePort
Auth9099
Functions5001
Firestore8080
Storage9199
Hosting5000
UI4000

Key Decisions

Firestore Data Modeling

  • Embed data read together that rarely changes
  • Reference data that changes frequently or is shared
  • Subcollections for parent-child relationships
  • Root collections for cross-document queries

See references/firestore.md for patterns.

TypeScript vs Python Functions

  • TypeScript: JavaScript teams, Firebase client SDK integration
  • Python: ML/data science, Python ecosystem

Both can coexist via multiple codebases in firebase.json.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.