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