| name | firestore_patterns |
| description | Firebase Firestore NoSQL patterns, real-time sync ve security rules rehberi. |
🔥 Firestore Patterns
Firebase Firestore NoSQL patterns rehberi.
📋 Temel İşlemler
import {
collection, doc, getDoc, setDoc,
addDoc, updateDoc, deleteDoc, query, where
} from 'firebase/firestore';
const docRef = doc(db, 'users', 'userId');
const docSnap = await getDoc(docRef);
await setDoc(doc(db, 'users', 'userId'), { name: 'John' });
await addDoc(collection(db, 'users'), { name: 'John' });
await updateDoc(doc(db, 'users', 'userId'), { name: 'Jane' });
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());
}
);
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
Aşama 2: Security Implementation
Aşama 3: Optimization
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 (allow write: if true) bir yer kaldı mı? (Kritik) |
| 3 | Sorgular index hatası veriyor mu? |