Firestore เป็นโซลูชันฐานข้อมูลที่ปรับขนาดได้ซึ่งช่วยให้ข้อมูลในไคลเอ็นต์เว็บซิงค์กันอยู่เสมอ
การสนับสนุนแบบออฟไลน์ที่มีการจัดการของ Firestore มีความสำคัญอย่างยิ่งสำหรับแอปจำนวนมาก เนื่องจากช่วยให้คุณสร้างแอปที่ตอบสนองได้ไม่ว่าจะมีเวลาในการตอบสนองของเครือข่ายหรือการเชื่อมต่ออินเทอร์เน็ตอย่างไรก็ตาม แต่ SDK ที่มีฟีเจอร์มากมายก็จะมีขนาดใหญ่ Firebase มีบริการอะไรบ้างสําหรับแอปที่ต้องใช้การดําเนินการพื้นฐานอย่างสร้าง อ่าน อัปเดต และลบ และไม่จําเป็นต้องรองรับการออฟไลน์ที่มีการจัดการ
โซลูชัน: Firestore Lite
Firestore Lite เป็น SDK ของ Firestore แบบ REST เท่านั้นที่แยกออกมาต่างหากและมีน้ำหนักเบา ซึ่งรองรับการดึงข้อมูลเอกสารรายการเดียว การดำเนินการค้นหา และการอัปเดตเอกสาร โดยมีขนาดเพียงเศษเสี้ยวของ Web SDK ปกติ Firestore Lite จะไม่ชดเชยเวลาในการตอบสนอง แคชแบบออฟไลน์ การค้นหาต่อ และเครื่องมือรับฟังสแนปชอต แต่สำหรับบางกรณีการใช้งาน การลดขนาดไลบรารีและเวลาเริ่มต้นจะมีประโยชน์มาก
นำเข้า Firestore Lite
Firestore Lite พร้อมใช้งานผ่าน npm โดยเป็นส่วนหนึ่งของ SDK แบบแยกส่วน ด้วยเหตุนี้ จึงเป็นแบบโมดูลได้อย่างสมบูรณ์และสามารถแยกโหลดได้
ระบบรองรับรูปแบบการนําเข้าต่อไปนี้
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
ฟีเจอร์ API ที่ Firestore Lite ไม่รองรับ
Firestore Lite จะไม่รวมฟีเจอร์ต่อไปนี้จาก Firestore SDK มาตรฐานเพื่อลดขนาดและความเร็ว
- ตัวแฮนเดิลเหตุการณ์ DocumentSnapshot โดยไม่รวมเมธอด
onSnapshot
และออบเจ็กต์DocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
และUnsubscribe
- ตัวช่วยการคงสถานะ โดยจะไม่รวมเมธอด
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
และclearIndexedDbPersistence
- แพ็กเกจ Firestore โดยจะไม่รวมเมธอด
loadBundle
และเมธอดที่เกี่ยวข้อง รวมถึงออบเจ็กต์LoadBundleTask
และLoadBundleTaskProgress
ใช้การดึงข้อมูล การค้นหา และการอัปเดตเอกสาร
หลังจากนําเข้า Firestore Lite แล้ว คุณจะเรียกใช้ API get และ update ที่คุ้นเคยทั้งหมดได้ กรณีการใช้งานสําหรับการเพิ่มข้อมูลและการรับข้อมูลทั้งหมดจะมีผล
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
การตัดสินใจว่าควรเลิกใช้ฟีเจอร์การคงข้อมูลไว้แบบออฟไลน์และฟีเจอร์การแคชของ Firestore SDK มาตรฐานเมื่อใดนั้นอาจเป็นเรื่องยาก คุณควรทำความเข้าใจฟีเจอร์เหล่านี้ก่อนตัดสินใจที่จะแลกเปลี่ยนฟีเจอร์เหล่านั้นเพื่อลดค่าใช้จ่ายเพิ่มเติมของ Firestore Lite โดยทั่วไปแล้ว ให้พิจารณาปัจจัยต่อไปนี้เมื่อตัดสินใจว่าจะใช้ Firestore Lite หรือไม่
- สถานะออนไลน์ - Firestore Lite เหมาะสำหรับแอปที่ไม่จําเป็นต้องอัปเดตแบบเรียลไทม์และมีการเชื่อมต่อ
- ข้อจำกัดด้านขนาด - Firestore Lite เหมาะอย่างยิ่งหากคุณต้องการลดขนาดกลุ่ม JavaScript โดยรวม