Claude-skill-registry-data moai-baas-firebase-ext
Enterprise Firebase Platform with AI-powered Google Cloud integration, Context7 integration, and intelligent Firebase orchestration for scalable mobile and web applications
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/moai-baas-firebase-ext-ajbcoding-claude-skill-eval" ~/.claude/skills/majiayu000-claude-skill-registry-data-moai-baas-firebase-ext-319bd1 && rm -rf "$T"
manifest:
data/moai-baas-firebase-ext-ajbcoding-claude-skill-eval/SKILL.mdsource content
Enterprise Firebase Platform Expert v4.0.0
Skill Metadata
| Field | Value |
|---|---|
| Skill Name | moai-baas-firebase-ext |
| Version | 4.0.0 (2025-11-13) |
| Tier | Enterprise Firebase Platform Expert |
| AI-Powered | ✅ Context7 Integration, Intelligent Architecture |
| Auto-load | On demand when Firebase keywords detected |
What It Does
Enterprise Firebase Platform expert with AI-powered Google Cloud integration, Context7 integration, and intelligent Firebase orchestration for scalable mobile and web applications.
Revolutionary v4.0.0 capabilities:
- 🤖 AI-Powered Firebase Architecture using Context7 MCP for latest Firebase patterns
- 📊 Intelligent Google Cloud Integration with automated optimization and scaling
- 🚀 Advanced Real-Time Features with AI-driven synchronization and performance
- 🔗 Enterprise Mobile Backend with zero-configuration deployment integration
- 📈 Predictive Analytics Integration with usage forecasting and cost optimization
When to Use
Automatic triggers:
- Firebase architecture and Google Cloud integration discussions
- Real-time database and Firestore implementation planning
- Mobile backend as a service strategy development
- Firebase security and performance optimization
Manual invocation:
- Designing enterprise Firebase architectures with optimal patterns
- Implementing comprehensive real-time features and synchronization
- Planning Firebase to Google Cloud migration strategies
- Optimizing Firebase performance and cost management
Quick Reference (Level 1)
Firebase Platform Ecosystem (November 2025)
Core Firebase Services
- Firestore: NoSQL document database with real-time synchronization
- Realtime Database: Legacy real-time JSON database
- Authentication: Multi-provider auth with social and enterprise support
- Cloud Functions: Serverless backend functions with auto-scaling
- Firebase Hosting: Global web hosting with CDN and SSL
- Cloud Storage: Object storage with security and metadata
Latest Features (November 2025)
- Firebase Data Connect: GraphQL APIs with database integration
- Native Vector Search: Built-in vector similarity search in Firestore
- Dataflow Integration: Advanced analytics and data processing
- Materialized Views: Query optimization with materialized views
- Point-in-Time Recovery: 7-day retention for database backup
Google Cloud Integration
- BigQuery: Firebase analytics integration for business intelligence
- Cloud Run: Scalable container deployment for Firebase extensions
- Cloud Logging: Comprehensive logging and monitoring
- Cloud Monitoring: Performance metrics and alerting
- Cloud Build: CI/CD pipeline integration
Performance Characteristics
- Firestore: P95 < 100ms query latency
- Realtime Database: P95 < 150ms sync latency
- Cloud Functions: Sub-second cold starts, 1M+ concurrent
- Firebase Hosting: Edge deployment with < 50ms global latency
- Cloud Storage: 99.999% durability, global CDN
Core Implementation (Level 2)
Firebase Architecture Intelligence
# AI-powered Firebase architecture optimization with Context7 class FirebaseArchitectOptimizer: def __init__(self): self.context7_client = Context7Client() self.firestore_analyzer = FirestoreAnalyzer() self.realtime_optimizer = RealtimeOptimizer() async def design_optimal_firebase_architecture(self, requirements: ApplicationRequirements) -> FirebaseArchitecture: """Design optimal Firebase architecture using AI analysis.""" # Get latest Firebase and Google Cloud documentation via Context7 firebase_docs = await self.context7_client.get_library_docs( context7_library_id='/firebase/docs', topic="firestore realtime authentication cloud-functions 2025", tokens=3000 ) gcloud_docs = await self.context7_client.get_library_docs( context7_library_id='/google-cloud/docs', topic="bigquery cloud-run monitoring optimization 2025", tokens=2000 ) # Optimize database strategy database_strategy = self.firestore_analyzer.optimize_database_strategy( requirements.data_requirements, requirements.realtime_needs, firebase_docs ) # Optimize real-time architecture realtime_design = self.realtime_optimizer.design_realtime_system( requirements.realtime_needs, requirements.user_base_size, firebase_docs ) return FirebaseArchitecture( database_configuration=database_strategy, realtime_system=realtime_design, authentication_setup=self._configure_authentication(requirements), cloud_functions=self._design_cloud_functions(requirements), google_cloud_integration=self._integrate_google_cloud(requirements), performance_optimization=self._optimize_performance(requirements), cost_management=self._optimize_costs(requirements) )
Advanced Firebase Implementation
// Enterprise Firebase implementation with TypeScript import { initializeApp, cert, getApps, getApp } from 'firebase-admin/app'; import { getFirestore, Firestore, collection, doc, setDoc, getDoc, updateDoc, query, where, orderBy, limit, onSnapshot } from 'firebase-admin/firestore'; import { getAuth, Auth } from 'firebase-admin/auth'; import { getFunctions, Functions } from 'firebase-admin/functions'; import { getStorage, Storage } from 'firebase-admin/storage'; interface FirebaseConfig { projectId: string; clientEmail: string; privateKey: string; databaseURL: string; storageBucket: string; } export class EnterpriseFirebaseManager { private app: any; private firestore: Firestore; private auth: Auth; private functions: Functions; private storage: Storage; constructor(config: FirebaseConfig) { // Initialize Firebase Admin SDK this.app = !getApps().length ? initializeApp({ credential: cert({ projectId: config.projectId, clientEmail: config.clientEmail, privateKey: config.privateKey.replace(/\\n/g, '\n'), }), databaseURL: config.databaseURL, storageBucket: config.storageBucket, }) : getApp(); this.firestore = getFirestore(this.app); this.auth = getAuth(this.app); this.functions = getFunctions(this.app); this.storage = getStorage(this.app); } // Advanced Firestore operations with batch processing async batchUpdateDocuments( updates: Array<{ collection: string; docId: string; data: any }> ): Promise<void> { const batch = this.firestore.batch(); for (const update of updates) { const docRef = doc(this.firestore, update.collection, update.docId); batch.set(docRef, { ...update.data, updatedAt: new Date(), updatedBy: 'system', }, { merge: true }); } await batch.commit(); } // Real-time subscription with advanced filtering subscribeToRealtimeUpdates<T>( collectionPath: string, filters: QueryFilter[] = [], callback: (data: T[]) => void ): () => void { let queryRef = collection(this.firestore, collectionPath); // Apply filters for (const filter of filters) { if (filter.type === 'where') { queryRef = query(queryRef, where(filter.field, filter.operator, filter.value)); } else if (filter.type === 'orderBy') { queryRef = query(queryRef, orderBy(filter.field, filter.direction)); } else if (filter.type === 'limit') { queryRef = query(queryRef, limit(filter.value)); } } const unsubscribe = onSnapshot( queryRef, (snapshot) => { const data: T[] = []; snapshot.forEach((doc) => { data.push({ id: doc.id, ...doc.data() } as T); }); callback(data); }, (error) => { console.error('Real-time subscription error:', error); } ); return unsubscribe; } // Advanced user authentication with custom claims async authenticateUser( uid: string, customClaims: Record<string, any> = {} ): Promise<AuthResult> { try { // Set custom claims await this.auth.setCustomUserClaims(uid, customClaims); // Get user record const userRecord = await this.auth.getUser(uid); return { success: true, user: { uid: userRecord.uid, email: userRecord.email, displayName: userRecord.displayName, photoURL: userRecord.photoURL, emailVerified: userRecord.emailVerified, customClaims: userRecord.customClaims, }, }; } catch (error) { return { success: false, error: error.message, }; } } // Secure file upload with metadata async uploadFile( filePath: string, fileData: Buffer, metadata: FileMetadata ): Promise<FileUploadResult> { try { const bucket = this.storage.bucket(); const file = bucket.file(filePath); // Upload file with metadata await file.save(fileData, { metadata: { contentType: metadata.contentType, metadata: { uploadedBy: metadata.uploadedBy, originalName: metadata.originalName, description: metadata.description, tags: JSON.stringify(metadata.tags || []), }, }, }); // Make file public if needed if (metadata.makePublic) { await file.makePublic(); } return { success: true, filePath, publicUrl: metadata.makePublic ? file.publicUrl() : null, size: fileData.length, contentType: metadata.contentType, }; } catch (error) { return { success: false, error: error.message, }; } } // Cloud Functions with advanced error handling async callFunction( functionName: string, data: any, timeout: number = 54000 // 54 seconds default ): Promise<FunctionResult> { try { const functionRef = this.functions.httpsCallable(functionName); const result = await functionRef(data); return { success: true, data: result.data, }; } catch (error) { return { success: false, error: error.message, code: error.code, details: error.details, }; } } } // Real-time data synchronization manager export class RealtimeSyncManager { private firebaseManager: EnterpriseFirebaseManager; private syncSubscriptions: Map<string, () => void> = new Map(); constructor(firebaseManager: EnterpriseFirebaseManager) { this.firebaseManager = firebaseManager; } // Sync user data across multiple devices syncUserData(userId: string, callback: (userData: UserData) => void): () => void { const unsubscribe = this.firebaseManager.subscribeToRealtimeUpdates<UserData>( `users/${userId}`, [ { type: 'orderBy', field: 'updatedAt', direction: 'desc' }, { type: 'limit', value: 1 }, ], (data) => { if (data.length > 0) { callback(data[0]); } } ); this.syncSubscriptions.set(`userData-${userId}`, unsubscribe); return unsubscribe; } // Sync collaborative data for real-time collaboration syncCollaborativeData( documentId: string, callback: (data: CollaborativeData) => void ): () => void { const unsubscribe = this.firebaseManager.subscribeToRealtimeUpdates<CollaborativeData>( `collaborative/${documentId}`, [], callback ); this.syncSubscriptions.set(`collaborative-${documentId}`, unsubscribe); return unsubscribe; } // Cancel all subscriptions cancelAllSubscriptions(): void { for (const unsubscribe of this.syncSubscriptions.values()) { unsubscribe(); } this.syncSubscriptions.clear(); } } // Advanced query optimization for Firestore export class FirestoreQueryOptimizer { private firestore: Firestore; constructor(firestore: Firestore) { this.firestore = firestore; } // Optimized pagination with cursor-based pagination async paginateWithCursor<T>( collectionPath: string, pageSize: number = 20, startAfter?: string, orderBy: string = 'createdAt' ): Promise<PaginatedResult<T>> { let queryRef = collection(this.firestore, collectionPath); queryRef = query(queryRef, orderBy(orderBy, 'desc')); queryRef = query(queryRef, limit(pageSize + 1)); if (startAfter) { const startDoc = await getDoc(doc(this.firestore, collectionPath, startAfter)); queryRef = query(queryRef, startAfter(startDoc)); } const snapshot = await getDocs(queryRef); const documents = snapshot.docs.map(doc => ({ id: doc.id, ...doc.data(), } as T)); const hasNext = documents.length > pageSize; const data = hasNext ? documents.slice(0, -1) : documents; return { data, hasNext, nextCursor: hasNext ? documents[documents.length - 1].id : null, }; } // Batch operations with atomic transactions async executeTransaction<T>( operations: TransactionOperation[] ): Promise<T[]> { const batch = this.firestore.batch(); for (const operation of operations) { const docRef = doc(this.firestore, operation.collection, operation.docId); switch (operation.type) { case 'set': batch.set(docRef, operation.data, operation.options); break; case 'update': batch.update(docRef, operation.data); break; case 'delete': batch.delete(docRef); break; } } await batch.commit(); return operations.map(op => op.data as T); } // Composite queries for complex data retrieval async executeCompositeQuery<T>( queries: CompositeQuery[] ): Promise<CompositeQueryResult<T>> { const results = await Promise.all( queries.map(async (query) => { let queryRef = collection(this.firestore, query.collection); for (const filter of query.filters) { queryRef = query(queryRef, where(filter.field, filter.operator, filter.value)); } const snapshot = await getDocs(queryRef); return { key: query.key, data: snapshot.docs.map(doc => ({ id: doc.id, ...doc.data(), } as T)), }; }) ); return { results, totalDocuments: results.reduce((sum, result) => sum + result.data.length, 0), }; } } // Types interface QueryFilter { type: 'where' | 'orderBy' | 'limit'; field: string; operator?: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'array-contains' | 'in'; value?: any; direction?: 'asc' | 'desc'; } interface AuthResult { success: boolean; user?: { uid: string; email: string; displayName: string; photoURL: string; emailVerified: boolean; customClaims: Record<string, any>; }; error?: string; } interface FileMetadata { contentType: string; uploadedBy: string; originalName: string; description?: string; tags?: string[]; makePublic?: boolean; } interface FileUploadResult { success: boolean; filePath: string; publicUrl?: string; size: number; contentType: string; error?: string; } interface FunctionResult { success: boolean; data?: any; error?: string; code?: string; details?: any; } interface UserData { uid: string; email: string; displayName: string; preferences: Record<string, any>; lastActive: Date; } interface CollaborativeData { documentId: string; content: any; collaborators: string[]; lastModified: Date; modifiedBy: string; } interface PaginatedResult<T> { data: T[]; hasNext: boolean; nextCursor: string | null; } interface TransactionOperation { type: 'set' | 'update' | 'delete'; collection: string; docId: string; data?: any; options?: { merge?: boolean }; } interface CompositeQuery { key: string; collection: string; filters: QueryFilter[]; } interface CompositeQueryResult<T> { results: Array<{ key: string; data: T[] }>; totalDocuments: number; }
Cloud Functions Integration
# Advanced Cloud Functions with Python from firebase_functions import https_fn, firestore_fn, auth_fn, storage_fn from firebase_admin import firestore, auth, storage from google.cloud import pubsub_v1 from datetime import datetime, timedelta import json # Real-time data synchronization function @https_fn.on_request() def sync_realtime_data(request: https_fn.Request) -> https_fn.Response: """Handle real-time data synchronization requests.""" try: # Parse request data data = request.get_json() # Validate request if not data or 'collection' not in data or 'document' not in data: return https_fn.Response( json.dumps({"error": "Missing required fields"}), status=400, mimetype="application/json" ) # Get Firestore client db = firestore.client() # Get document reference doc_ref = db.collection(data['collection']).document(data['document']) # Update document with timestamp doc_ref.set({ 'data': data.get('data', {}), 'updated_at': datetime.utcnow(), 'sync_source': data.get('source', 'unknown'), }, merge=True) # Trigger real-time update notification pubsub_client = pubsub_v1.PublisherClient() topic_path = pubsub_client.topic_path( os.environ.get('GCP_PROJECT', 'default-project'), 'realtime-updates' ) pubsub_client.publish( topic_path, data=json.dumps({ 'collection': data['collection'], 'document': data['document'], 'timestamp': datetime.utcnow().isoformat(), }).encode('utf-8') ) return https_fn.Response( json.dumps({"success": True, "message": "Data synchronized successfully"}), status=200, mimetype="application/json" ) except Exception as e: return https_fn.Response( json.dumps({"error": str(e)}), status=500, mimetype="application/json" ) # User management function @auth_fn.on_user_created def new_user_created(user: auth_fn.AuthEvent) -> None: """Handle new user creation.""" try: # Get Firestore client db = firestore.client() # Create user profile db.collection('users').document(user.uid).set({ 'email': user.email, 'display_name': user.display_name, 'photo_url': user.photo_url, 'email_verified': user.email_verified, 'created_at': datetime.utcnow(), 'last_login': datetime.utcnow(), 'preferences': { 'notifications': True, 'theme': 'light', 'language': 'en', }, 'subscription_tier': 'free', }) # Create initial user statistics db.collection('user_stats').document(user.uid).set({ 'documents_created': 0, 'collaborations': 0, 'last_activity': datetime.utcnow(), }) except Exception as e: print(f"Error creating user profile: {e}") # Storage function for file processing @storage_fn.on_object_finalized() def process_uploaded_file(event: storage_fn.CloudEvent) -> None: """Process uploaded files and extract metadata.""" try: # Get file information file_path = event.data.name bucket_name = event.data.bucket # Get storage client storage_client = storage.Client() bucket = storage_client.bucket(bucket_name) blob = bucket.blob(file_path) # Extract metadata metadata = blob.metadata or {} # Get Firestore client db = firestore.client() # Create file record db.collection('files').document(blob.name).set({ 'name': blob.name, 'content_type': blob.content_type, 'size': blob.size, 'created': blob.time_created, 'updated': blob.updated, 'metadata': metadata, 'public_url': blob.public_url, 'processed': True, }) # If image, generate thumbnail if blob.content_type.startswith('image/'): # Call image processing function generate_thumbnail(blob.name) except Exception as e: print(f"Error processing file {event.data.name}: {e}") def generate_thumbnail(file_path: str): """Generate thumbnail for uploaded images.""" try: # This would integrate with Cloud Vision API or similar # For now, just update the file record db = firestore.client() db.collection('files').document(file_path).update({ 'thumbnail_generated': True, 'thumbnail_url': f"https://storage.googleapis.com/thumbnails/{file_path}", }) except Exception as e: print(f"Error generating thumbnail for {file_path}: {e}") # Automated backup function @https_fn.on_request(schedule="0 2 * * *") # Daily at 2 AM def automated_backup(request: https_fn.Request) -> https_fn.Response: """Perform automated database backup.""" try: # Get Firestore client db = firestore.client() # Get backup configuration backup_config = db.collection('config').document('backup').get().to_dict() if not backup_config or not backup_config.get('enabled', False): return https_fn.Response("Backup disabled", status=200) # Create backup record backup_ref = db.collection('backups').document() backup_ref.set({ 'created_at': datetime.utcnow(), 'status': 'in_progress', 'type': 'automated', 'config': backup_config, }) # Perform backup (simplified version) collections_to_backup = backup_config.get('collections', []) backup_data = {} for collection_name in collections_to_backup: collection_ref = db.collection(collection_name) docs = collection_ref.stream() backup_data[collection_name] = [ {**doc.to_dict(), 'id': doc.id} for doc in docs ] # Store backup in Cloud Storage storage_client = storage.Client() bucket = storage_client.bucket(backup_config['storage_bucket']) backup_blob = bucket.blob(f"backups/{backup_ref.id}.json") backup_blob.upload_from_string( json.dumps(backup_data, default=str), content_type='application/json' ) # Update backup record backup_ref.update({ 'status': 'completed', 'completed_at': datetime.utcnow(), 'storage_path': backup_blob.name, 'document_count': sum(len(docs) for docs in backup_data.values()), }) # Clean old backups clean_old_backups(backup_config['retention_days']) return https_fn.Response( json.dumps({ "success": True, "backup_id": backup_ref.id, "document_count": sum(len(docs) for docs in backup_data.values()) }), status=200, mimetype="application/json" ) except Exception as e: return https_fn.Response( json.dumps({"error": str(e)}), status=500, mimetype="application/json" ) def clean_old_backups(retention_days: int): """Clean old backup files.""" try: cutoff_date = datetime.utcnow() - timedelta(days=retention_days) db = firestore.client() old_backups = db.collection('backups').where( 'created_at', '<', cutoff_date ).stream() storage_client = storage.Client() bucket = storage_client.bucket(os.environ.get('BACKUP_BUCKET')) for backup in old_backups: # Delete from Cloud Storage backup_path = backup.to_dict().get('storage_path') if backup_path: blob = bucket.blob(backup_path) blob.delete() # Delete from Firestore db.collection('backups').document(backup.id).delete() except Exception as e: print(f"Error cleaning old backups: {e}")
Reference & Integration (Level 4)
API Reference
Core Firebase Operations
- Atomic batch document updatesbatch_update_documents(updates)
- Real-time subscriptionssubscribe_to_realtime_updates(collection, filters, callback)
- User authentication with claimsauthenticate_user(uid, customClaims)
- Secure file uploadupload_file(filePath, data, metadata)
- Cloud Functions invocationcall_function(functionName, data)
Context7 Integration
- Firebase docs via Context7get_latest_firebase_documentation()
- Database patterns via Context7analyze_firestore_patterns()
- Real-time optimization via Context7optimize_realtime_architecture()
Best Practices (November 2025)
DO
- Use Firestore for new projects over Realtime Database
- Implement proper security rules for database access
- Use Cloud Functions for serverless backend logic
- Optimize database queries with proper indexing
- Implement proper error handling and retry logic
- Use Firebase Authentication with custom claims
- Monitor performance and costs regularly
- Implement proper backup and recovery procedures
DON'T
- Use Realtime Database for new projects
- Skip security rules validation
- Ignore database performance optimization
- Forget to implement proper error handling
- Skip Firebase Security Rules testing
- Ignore cost monitoring and optimization
- Forget to implement proper logging
- Skip backup and disaster recovery planning
Works Well With
(Enterprise BaaS architecture)moai-baas-foundation
(Backend Firebase integration)moai-domain-backend
(Frontend Firebase integration)moai-domain-frontend
(Firebase security implementation)moai-security-api
(Performance optimization)moai-essentials-perf
(Security and compliance)moai-foundation-trust
(Mobile Firebase integration)moai-domain-mobile-app
(PostgreSQL alternative)moai-baas-supabase-ext
Changelog
- v4.0.0 (2025-11-13): Complete Enterprise v4.0 rewrite with 40% content reduction, 4-layer Progressive Disclosure structure, Context7 integration, November 2025 Firebase platform updates, and advanced Google Cloud integration
- v2.0.0 (2025-11-11): Complete metadata structure, Firebase patterns, Google Cloud integration
- v1.0.0 (2025-11-11): Initial Firebase platform
End of Skill | Updated 2025-11-13
Firebase Platform Integration
Google Cloud Ecosystem
- BigQuery integration for advanced analytics
- Cloud Run for scalable container deployment
- Cloud Logging and Monitoring for observability
- Cloud Build for CI/CD pipeline integration
- Cloud Storage for scalable file management
Mobile-First Features
- Real-time synchronization across devices
- Offline data persistence and sync
- Push notifications and messaging
- Authentication with social providers
- Global CDN for fast content delivery
End of Enterprise Firebase Platform Expert v4.0.0