firebase-operations
Performs Firebase Firestore operations. Use when querying collections, creating/updating/deleting documents, using batch writes, or working with Timestamps. Includes pagination, transactions, and security rules patterns.
When & Why to Use This Skill
The Firebase Operations skill enables Claude to perform advanced management of Google Cloud Firestore databases. It streamlines backend development by providing a standardized interface for CRUD operations, complex querying, and high-performance data handling. By incorporating best practices like atomic transactions, batch writes (up to 500 operations), and precise Timestamp management, this skill ensures data integrity and scalability for modern web and mobile applications.
Use Cases
- Real-time Data Management: Seamlessly query, create, and update document collections to manage user profiles, project metadata, or application states.
- High-Volume Data Processing: Execute efficient batch writes to handle bulk data migrations or synchronized updates across multiple documents simultaneously.
- Atomic Financial or Inventory Logic: Use Firestore transactions to perform multi-step operations that require strict atomicity to prevent data corruption or race conditions.
- Automated Content Pagination: Implement robust data fetching patterns with pagination support for building scalable feeds and lists.
- Standardized Time-Series Tracking: Manage chronological data using Firestore Timestamps with built-in patterns for ISO string conversion, ideal for audit logs and activity tracking.
| name | firebase-operations |
|---|---|
| description | Performs Firebase Firestore operations. Use when querying collections, creating/updating/deleting documents, using batch writes, or working with Timestamps. Includes pagination, transactions, and security rules patterns. |
Firebase Operations Skill
Instructions
- Import
getAdminDb, COLLECTIONSfrom@/lib/firebase-admin - Use
Timestamp.now()for timestamps - Convert to ISO string for API responses:
createdAt.toDate().toISOString() - Use batch writes for multiple operations (max 500)
- Use transactions for atomic operations
Quick Reference
import { getAdminDb, COLLECTIONS } from '@/lib/firebase-admin'
import { Timestamp, FieldValue } from 'firebase-admin/firestore'
// Get document
const doc = await db.collection(COLLECTIONS.PROJECTS).doc(id).get()
// Create with timestamps
const now = Timestamp.now()
await docRef.set({ ...data, createdAt: now, updatedAt: now })
// Update
await docRef.update({ field: value, updatedAt: Timestamp.now() })
// Increment counter
await docRef.update({ likes: FieldValue.increment(1) })
For complete operations (batch writes, transactions, pagination, queries), see reference.md.