@intentsolutionsio/jeremy-firebase
v2.0.0
Published
Firebase platform expert for Firestore, Auth, Functions, and Vertex AI integration
Maintainers
Readme
jeremy-firebase
Production-ready Firebase platform operations plugin with Vertex AI Gemini integration.
Overview
Comprehensive automation for Firebase services including Authentication, Cloud Storage, Hosting, Cloud Functions, Analytics, and AI-powered features using Vertex AI Gemini.
Features
Core Firebase Services
- Firebase Authentication - User management, custom claims, OAuth providers
- Cloud Firestore - Document CRUD, queries, security rules, indexes
- Cloud Storage - File uploads, security rules, signed URLs
- Firebase Hosting - Static site deployment, custom domains, SSL
- Cloud Functions - TypeScript/JavaScript functions, HTTP/callable/scheduled triggers
- Firebase Analytics - Event logging, user properties, conversion tracking
AI Integration (Vertex AI Gemini)
- Embeddings Generation - Text-to-vector for semantic search
- Content Analysis - Gemini API for content moderation, classification
- Chat Integration - Conversational AI with Firebase data context
- Model Deployment - Custom AI models with Firebase ML
- RAG Implementation - Retrieval-Augmented Generation with Firestore vector search
DevOps & Operations
- Firebase CLI Automation - Project init, deployment, emulator control
- Environment Management - Multiple Firebase projects (dev, staging, prod)
- Security Rules Testing - Automated testing of Firestore and Storage rules
- Performance Monitoring - Integration with Firebase Performance Monitoring
- Remote Config - Feature flags and A/B testing setup
Installation
/plugin install jeremy-firebase@claude-code-plugins-plusPrerequisites
- Firebase CLI:
npm install -g firebase-tools - Node.js 18+
- Google Cloud Project with Firebase enabled
- Vertex AI API enabled (for AI features)
Quick Start
Initialize Firebase Project
firebase login
firebase initDeploy to Firebase
Use the slash commands:
/firebase-deploy-hosting
/firebase-deploy-functions
/firebase-deploy-rulesEnvironment Configuration
Create .env.local:
FIREBASE_PROJECT_ID=your-project-id
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
VERTEX_AI_LOCATION=us-central1Available Commands
The plugin provides slash commands for common Firebase operations:
/firebase-init-project- Initialize new Firebase project/firebase-deploy-hosting- Deploy static site to Firebase Hosting/firebase-deploy-functions- Deploy Cloud Functions/firebase-deploy-rules- Deploy Firestore and Storage security rules/firebase-auth-setup- Configure Firebase Authentication providers/firebase-vertex-ai-embeddings- Generate embeddings with Vertex AI/firebase-firestore-query- Execute Firestore queries/firebase-storage-upload- Upload files to Cloud Storage
See /firebase-help for complete command list.
Agent Skills
This plugin includes Agent Skills that automatically activate based on trigger phrases:
firebase-vertex-ai
Triggers: "integrate vertex ai", "add gemini to firebase", "generate embeddings"
Automatically sets up Vertex AI Gemini integration with Firebase, including:
- Content moderation for user-generated content
- Semantic search with embeddings
- Conversational AI chatbots
- Image analysis with Gemini Vision
Architecture
Firebase Project
├── Authentication (user management)
├── Firestore (NoSQL database)
├── Cloud Storage (file storage)
├── Cloud Functions (serverless backend)
├── Firebase Hosting (static site hosting)
└── Vertex AI Integration
├── Gemini 2.0 Flash (content analysis)
├── Text Embeddings (semantic search)
└── Custom Models (ML deployment)Example Use Cases
1. User Registration with AI Content Moderation
// Cloud Function triggered on user creation
exports.moderateUserProfile = functions.firestore
.document('users/{userId}')
.onCreate(async (snap, context) => {
const {VertexAI} = require('@google-cloud/vertexai');
const vertex = new VertexAI({project: 'PROJECT_ID', location: 'us-central1'});
const model = vertex.getGenerativeModel({model: 'gemini-2.5-flash'});
const userBio = snap.data().bio;
const result = await model.generateContent(`Moderate this user bio for inappropriate content: ${userBio}`);
if (result.response.text().includes('INAPPROPRIATE')) {
await snap.ref.update({status: 'pending_review'});
}
});2. Semantic Search with Firestore
// Generate embeddings and store in Firestore
const embedding = await generateEmbedding(documentText);
await firestore.collection('documents').add({
text: documentText,
embedding: embedding,
createdAt: admin.firestore.FieldValue.serverTimestamp()
});
// Query by similarity
const queryEmbedding = await generateEmbedding(searchQuery);
const results = await vectorSearch(queryEmbedding, 10);3. AI-Powered Chatbot
// Cloud Function for chat endpoint
exports.chat = functions.https.onCall(async (data, context) => {
const {VertexAI} = require('@google-cloud/vertexai');
const vertex = new VertexAI({project: 'PROJECT_ID'});
const model = vertex.getGenerativeModel({model: 'gemini-2.5-flash'});
// Get conversation history from Firestore
const history = await getConversationHistory(context.auth.uid);
const result = await model.generateContent({
contents: [...history, {role: 'user', parts: [{text: data.message}]}]
});
return {reply: result.response.text()};
});Security Best Practices
Firestore Security Rules
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isAuthenticated() {
return request.auth != null;
}
function isOwner(userId) {
return isAuthenticated() && request.auth.uid == userId;
}
match /users/{userId} {
allow read: if isOwner(userId);
allow write: if isOwner(userId);
}
}
}Storage Security Rules
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /users/{userId}/{allPaths=**} {
allow read: if request.auth != null;
allow write: if request.auth.uid == userId
&& request.resource.size < 10 * 1024 * 1024; // 10MB limit
}
}
}Performance Optimization
- Batch Firestore Operations - Use batch writes for multiple document updates
- Firebase Functions Cold Starts - Implement function warming strategies
- Vertex AI Rate Limits - Implement exponential backoff and retry logic
- Storage Upload Optimization - Use resumable uploads for large files
- Hosting Cache Headers - Configure proper caching in firebase.json
Troubleshooting
Common Issues
Issue: Firebase CLI not found
npm install -g firebase-toolsIssue: Authentication failed
firebase login --reauthIssue: Vertex AI quota exceeded
- Check quotas in GCP Console
- Implement rate limiting in Cloud Functions
- Use caching to reduce API calls
Issue: Firestore permissions denied
- Check security rules in Firebase Console
- Verify user is authenticated
- Review IAM permissions
Configuration
firebase.json
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": {
"source": "functions"
},
"hosting": {
"public": "public",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"]
},
"storage": {
"rules": "storage.rules"
}
}Documentation
For detailed plugin documentation and Firebase integration guides, see:
- Plugin documentation:
000-usermanuals/ - Firebase docs: https://firebase.google.com/docs
- Vertex AI docs: https://cloud.google.com/vertex-ai/docs
License
MIT License - See LICENSE file
Author
Jeremy Longshore
- GitHub: https://github.com/jeremylongshore
- Plugin Marketplace: https://claudecodeplugins.io
Support
- Issues: https://github.com/jeremylongshore/claude-code-plugins/issues
- Discord: https://discord.com/invite/6PPFFzqPDZ (#claude-code channel)
Version: 1.0.0 Category: Integration Plugin Type: AI Instruction + Agent Skills Last Updated: 2025-11-13
