Firestore adalah solusi database yang skalabel dan cocok untuk menjaga data tetap sinkron di seluruh klien Web.
Untuk banyak aplikasi, dukungan offline terkelola dari Firestore sangatlah penting. Dengan dukungan ini, Anda dapat mem-build aplikasi yang responsif dan tetap berfungsi terlepas dari faktor latensi jaringan atau konektivitas internet. Namun, SDK yang memiliki fitur lengkap ini harganya tidak murah. Apa yang ditawarkan oleh Firebase untuk aplikasi yang hanya perlu menggunakan operasi pembuatan, pembacaan, update, dan penghapusan dasar, dan tidak memerlukan dukungan offline terkelola?
Solusi: Firestore Lite
Firestore Lite adalah Firestore SDK khusus REST yang ringan dan mandiri yang mendukung pengambilan satu dokumen, eksekusi kueri, dan pembaruan dokumen, dengan ukuran yang lebih kecil dari Web SDK standar. Firestore Lite menghilangkan kompensasi latensi, pembuatan cache offline, kelanjutan eksekusi kueri, dan pemroses snapshot, tetapi untuk kasus penggunaan tertentu, pengurangan ukuran library dan waktu startup dapat menghasilkan keseimbangan yang baik.
Mengimpor Firestore Lite
Firestore Lite tersedia melalui npm sebagai bagian dari SDK modular. Firestore Lite ini sepenuhnya modular dan dapat di-tree-shaking.
Gaya impor berikut didukung.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
Fitur API yang tidak didukung oleh Firestore Lite
Untuk ukuran dan kecepatan, Firestore Lite menghilangkan fitur berikut dari Firestore SDK standar:
- Pengendali peristiwa DocumentSnapshot. Metode
onSnapshot
serta objekDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
, danUnsubscribe
tidak disertakan. - Helper persistensi. Metode
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
, danclearIndexedDbPersistence
tidak disertakan. - Paket Firestore. Metode
loadBundle
dan metode terkait, serta objekLoadBundleTask
danLoadBundleTaskProgress
tidak disertakan.
Mengimplementasikan pengambilan dokumen, eksekusi kueri, dan pembaruan dokumen
Setelah mengimpor Firestore Lite, Anda dapat menggunakan semua fungsi "get" pada API yang sudah dikenal dan memperbarui panggilan. Kasus penggunaan untuk menambahkan data dan mendapatkan data semuanya berlaku.
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');
Kapan Firestore Lite digunakan
Mungkin sulit untuk memutuskan kapan harus menghentikan persistensi offline dan fitur caching dari Firestore SDK standar. Anda harus memahami fitur tersebut sebelum memutuskan menggantinya dengan Firestore Lite yang memiliki kemampuan lebih rendah. Secara umum, pertimbangkan faktor berikut saat Anda memutuskan apakah akan menggunakan Firestore Lite atau tidak:
- Status online - Firestore Lite cocok untuk aplikasi yang tidak memerlukan update langsung dan memiliki konektivitas.
- Batasan ukuran - Firestore Lite adalah solusi yang bagus jika Anda ingin mengurangi ukuran paket JavaScript secara keseluruhan.