SDK เว็บของ Cloud Firestore Lite

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 โดยรวม