Firestore, verileri Web istemcileri arasında senkronize halde tutmak için iyi bir ölçeklenebilir veritabanı çözümüdür.
Birçok uygulama için, Firestore'un yönetilen çevrimdışı desteği özellikle önemlidir ve ağ gecikmesinden veya İnternet bağlantısından bağımsız olarak çalışan duyarlı uygulamalar oluşturmanıza olanak tanır. Ancak zengin özelliklere sahip SDK'ların bir boyut maliyeti vardır. 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 sunuyor?
Çözüm: Firestore Lite
Firestore Lite, normal Web SDK boyutunun çok küçük bir kısmında tek belge getirme, sorgu yürütme ve belge güncellemelerini destekleyen hafif, bağımsız bir REST-only Firestore SDK'dır. Firestore Lite, gecikme telafisini, çevrimdışı önbelleğe almayı, sorguyu sürdürmeyi ve anlık görüntü dinleyicilerini içermez, ancak belirli kullanım durumları için, kitaplık boyutundaki ve başlatma süresindeki azalmalar büyük bir denge sağlar.
Firestore Lite'ı içe aktarın
Firestore Lite, modüler SDK'nın bir parçası olarak npm aracılığıyla kullanılabilir. Bu nedenle tamamen modüler ve ağaç sallanabilir.
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 açısından şu özellikleri standart Firestore SDK'dan çıkarır:
- DocumentSnapshot olay işleyicileri .
onSnapshot
yöntemi veDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
veUnsubscribe
nesneleri dahil değildir. - Kalıcılık yardımcıları .
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
veclearIndexedDbPersistence
yöntemleri dahil değildir. - Firestore paketleri .
loadBundle
yöntemi ve ilgili yöntemler ileLoadBundleTask
veLoadBundleTaskProgress
nesneleri dahil değildir.
Belge getirme, sorgulama ve güncellemeleri uygulama
Firestore Lite'ı içe aktardıktan sonra, tüm tanıdık API alma ve güncelleme çağrılarını yapabilirsiniz. Veri eklemek ve veri almak için kullanım durumları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'nın çevrimdışı kalıcılık ve önbelleğe alma özelliklerinin ne zaman bırakılacağına karar vermek zor olabilir. Firestore Lite'ın daha düşük ek yükü için bunları takas etmeye karar vermeden önce bu özellikleri anlamalısınız. Genel olarak, Firestore Lite kullanıp kullanmamaya karar verirken şu faktörleri değerlendirin:
- Çevrimiçi durum - Firestore Lite, canlı güncellemelere ihtiyaç duymayan ve bağlantıya sahip uygulamalar için iyidir.
- Boyut kısıtlamaları - Genel JavaScript paket boyutunuzu azaltmak istiyorsanız Firestore Lite harikadır.