Firestore, verileri Web istemcileri arasında senkronize 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; 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 neler sunuyor?
Çözüm: Firestore Lite
Firestore Lite, normal Web SDK boyutunun çok altında tek belge getirmeyi, sorgu yürütmeyi ve belge güncellemelerini destekleyen hafif, bağımsız, yalnızca REST'e özel bir Firestore SDK'sıdır. Firestore Lite, gecikme telafisini, çevrimdışı önbelleğe almayı, sorguyu sürdürmeyi ve anlık görüntü dinleyicilerini göz ardı eder, ancak belirli kullanım durumları için kitaplık boyutundaki ve başlatma süresindeki azalmalar büyük bir ödünleşim sağlar.
Firestore Lite'ı içe aktar
Firestore Lite, modüler SDK'nın bir parçası olarak npm aracılığıyla edinilebilir. Bu nedenle tamamen modülerdir ve ağaçla sarsı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 açısından şu özellikleri standart Firestore SDK'sından çı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 edilmez.
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 ekleme ve veri alma 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ılmalı?
Standart Firestore SDK'nın çevrimdışı kalıcılık ve önbelleğe alma özelliklerinden ne zaman vazgeçileceğine karar vermek zor olabilir. Firestore Lite'ın daha düşük maliyeti karşılığında bunları takas etmeye karar vermeden önce bu özellikleri anlamalısınız. Firestore Lite'ı kullanıp kullanmayacağınıza karar verirken genel olarak şu faktörleri değerlendirin:
- Çevrimiçi durum - Firestore Lite, canlı güncellemelere ihtiyaç duymayan ve bağlantısı olan uygulamalar için iyidir.
- Boyut kısıtlamaları - Genel JavaScript paketi boyutunuzu azaltmak istiyorsanız Firestore Lite harikadır.