Firestore เป็นโซลูชันฐานข้อมูลที่ดีซึ่งรองรับการปรับขนาดเพื่อให้ซิงค์ข้อมูลกับไคลเอ็นต์ของเว็บได้
การสนับสนุนแบบออฟไลน์ที่มีการจัดการของ Firestore มีความสำคัญอย่างยิ่งสำหรับแอปหลายแอป เนื่องจากช่วยให้คุณสร้างแอปที่ตอบสนองได้ไม่ว่าจะมีเวลาในการตอบสนองของเครือข่ายหรือการเชื่อมต่ออินเทอร์เน็ตอย่างไรก็ตาม แต่ SDK ที่มีฟีเจอร์มากมายก็จะมีขนาดใหญ่ Firebase มีบริการอะไรบ้างสําหรับแอปที่ต้องใช้การดําเนินการพื้นฐานอย่างสร้าง อ่าน อัปเดต และลบ และไม่จําเป็นต้องรองรับการทำงานแบบออฟไลน์ที่มีการจัดการ
วิธีแก้ไข: Firestore Lite
Firestore Lite เป็น Firestore SDK แบบสแตนด์อโลนที่ใช้ REST เท่านั้น และใช้ทรัพยากรน้อยซึ่งรองรับการดึงข้อมูลเอกสารรายการเดียว การดำเนินการค้นหา และการอัปเดตเอกสาร โดยมีส่วนย่อยของขนาด Web SDK ปกติ Firestore Lite ละเว้นการชดเชยเวลาในการตอบสนอง การแคชแบบออฟไลน์ การเริ่มการค้นหาอีกครั้ง และ Listener ของสแนปชอต แต่สำหรับกรณีการใช้งานบางกรณี การลดขนาดไลบรารีและเวลาเริ่มต้นเป็นข้อดีอย่างยิ่ง
นำเข้า 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 ที่คุ้นเคยทั้งหมดเรียกและอัปเดตได้ กรณีการใช้งานสำหรับการเพิ่มข้อมูลและการรับข้อมูลนั้นล้วนแล้วแต่มีผลบังคับใช้
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 โดยรวม