Firestore, verileri web istemcileri arasında senkronize tutmak için iyi bir ölçeklenebilir veritabanı çözümüdür.
Firestore'un yönetilen çevrimdışı desteği, birçok uygulama için özellikle önemlidir. Bu destek sayesinde, ağ gecikmesi veya internet bağlantısından bağımsız olarak çalışan duyarlı uygulamalar geliştirebilirsiniz. Ancak zengin özelliklere sahip SDK'lar, boyut maliyetine neden olur. Firebase, yalnızca temel oluşturma, okuma, güncelleme ve silme işlemlerini kullanması gereken ve yönetilen çevrimdışı desteğe ihtiyaç duymayan uygulamalar için ne sunar?
Çözüm: Firestore Lite
Firestore Lite, normal Web SDK'sı boyutunun çok küçük bir kısmında tek belge getirme, sorgu yürütme ve belge güncellemelerini destekleyen, yalnızca REST tabanlı, bağımsız ve hafif bir Firestore SDK'sıdır. Firestore Lite; gecikme telafisi, çevrimdışı önbelleğe alma, sorgu devam ettirme ve anlık görüntü dinleyicileri içermez. Ancak belirli kullanım alanlarında, kitaplık boyutunun ve başlangıç süresinin azalması büyük bir avantaj sağlar.
Firestore Lite'ı içe aktarma
Firestore Lite, modüler SDK'nın bir parçası olarak npm aracılığıyla kullanılabilir. Bu nedenle tamamen modülerdir ve ağaç sallama (tree shaking) yapılabilir.
Aşağıdaki içe aktarma stili desteklenir.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
Firestore Lite tarafından desteklenmeyen API özellikleri
Firestore Lite, boyut ve hız için standart Firestore SDK'sındaki şu özellikleri içermez:
- DocumentSnapshot etkinlik işleyicileri.
onSnapshotyöntemi veDocumentChange,SnapshotListenerOptions,SnapshotMetadata,SnapshotOptionsveUnsubscribenesneleri dahil değildir. - Kalıcılık yardımcıları.
enableIndexedDBPersistence,enableMultiTabIndexedDbPersistenceveclearIndexedDbPersistenceyöntemleri dahil değildir. - Firestore paketleri.
loadBundleyöntemi ve ilgili yöntemler ileLoadBundleTaskveLoadBundleTaskProgressnesneleri dahil edilmez.
Doküman getirme, sorgulama ve güncelleme işlemlerini uygulama
Firestore Lite'ı içe aktardıktan sonra, bildiğiniz tüm API alma ve güncelleme çağrılarını yapabilirsiniz. Veri ekleme ve veri alma kullanım alanlarının tümü geçerlidir.
import {
getFirestore,
getDoc,
updateDoc,
doc
} from '@firebase/firestore/lite';
const firestore = getFirestore(app);
const docRef = doc(firestore, 'collection/doc');
const docSnap = await getDoc(docRef);
await updateDoc(docRef, "field", 'value');
Firestore Lite ne zaman kullanılır?
Standart Firestore SDK'sının çevrimdışı kalıcılık ve önbelleğe alma özelliklerini ne zaman bırakacağınıza karar vermek zor olabilir. Firestore Lite'ın daha düşük ek yükü için bu özelliklerden vazgeçmeye karar vermeden önce bu özellikleri anlamanız gerekir. Genel olarak, Firestore Lite'ı kullanıp kullanmayacağınıza karar verirken şu faktörleri göz önünde bulundurun:
- Çevrimiçi durum: Firestore Lite, canlı güncellemelere ihtiyaç duymayan ve bağlantısı olan uygulamalar için idealdir.
- Boyut kısıtlamaları: Genel JavaScript paket boyutunuzu küçültmek istiyorsanız Firestore Lite mükemmel bir seçenektir.