Claude-skill-registry firestore_patterns
Firebase Firestore NoSQL patterns, real-time sync ve security rules rehberi.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/firestore-patterns" ~/.claude/skills/majiayu000-claude-skill-registry-firestore-patterns && rm -rf "$T"
manifest:
skills/data/firestore-patterns/SKILL.mdsource content
🔥 Firestore Patterns
Firebase Firestore NoSQL patterns rehberi.
📋 Temel İşlemler
import { collection, doc, getDoc, setDoc, addDoc, updateDoc, deleteDoc, query, where } from 'firebase/firestore'; // Read const docRef = doc(db, 'users', 'userId'); const docSnap = await getDoc(docRef); // Create await setDoc(doc(db, 'users', 'userId'), { name: 'John' }); await addDoc(collection(db, 'users'), { name: 'John' }); // Auto ID // Update await updateDoc(doc(db, 'users', 'userId'), { name: 'Jane' }); // Delete await deleteDoc(doc(db, 'users', 'userId'));
🔄 Real-time Listeners
import { onSnapshot } from 'firebase/firestore'; const unsubscribe = onSnapshot( doc(db, 'users', 'userId'), (doc) => { console.log('Data:', doc.data()); } ); // Cleanup unsubscribe();
🔍 Queries
const q = query( collection(db, 'users'), where('age', '>=', 18), where('status', '==', 'active'), orderBy('createdAt', 'desc'), limit(10) ); const querySnapshot = await getDocs(q);
🔒 Security Rules
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /users/{userId} { allow read: if request.auth != null; allow write: if request.auth.uid == userId; } } }
Firestore Patterns v1.1 - Enhanced
🔄 Workflow
Kaynak: Firebase Security Rules Guide
Aşama 1: Data Modeling
- Access Patterns: Veriyi nasıl okuyacağına göre modelle (SQL gibi normalize etme).
- Subcollections: 1MB döküman limitini aşmamak için alt koleksiyon kullan.
- Denormalization: Okuma performansını artırmak için veriyi çoğaltmayı düşün.
Aşama 2: Security Implementation
- Auth:
kontrolünü her kurala ekle.request.auth != null - Validation: Gelen veriyi (type, length) security rules içinde doğrula.
- Testing: Emulator kullanarak kuralları unit test ile sına.
Aşama 3: Optimization
- Indexes: Karmaşık sorgular için composite index oluştur.
- Offline: Mobil için offline persistence'ı aktif et.
Kontrol Noktaları
| Aşama | Doğrulama |
|---|---|
| 1 | Bir dökümanı okumak için 100 başka döküman okumak gerekiyor mu? (Kötü) |
| 2 | Herkesin yazabildiği () bir yer kaldı mı? (Kritik) |
| 3 | Sorgular index hatası veriyor mu? |