SDK เว็บของ Cloud Firestore Lite

Firestore เป็นโซลูชันฐานข้อมูลที่ปรับขนาดได้ดีเพื่อซิงค์ข้อมูลในไคลเอ็นต์เว็บ

การรองรับการใช้งานออฟไลน์ที่มีการจัดการของ Firestore มีความสำคัญอย่างยิ่งสำหรับแอปจำนวนมาก ซึ่งช่วยให้คุณสร้างแอปที่ตอบสนองได้ดีซึ่งทำงานได้โดยไม่คำนึงถึงเวลาในการตอบสนองของเครือข่ายหรือการเชื่อมต่ออินเทอร์เน็ต แต่ SDK ที่มีฟีเจอร์หลากหลายก็มีขนาดใหญ่ตามไปด้วย Firebase มีอะไรให้บ้างสำหรับแอปที่ต้องการใช้เฉพาะการดำเนินการสร้าง อ่าน อัปเดต และลบขั้นพื้นฐาน และไม่ต้องการการสนับสนุนแบบออฟไลน์ที่มีการจัดการ

โซลูชัน: Firestore Lite

Firestore Lite เป็น SDK ของ Firestore แบบ REST เท่านั้นที่มีน้ำหนักเบาและทำงานแบบสแตนด์อโลน ซึ่งรองรับการดึงข้อมูลเอกสารรายการเดียว การดำเนินการค้นหา และการอัปเดตเอกสาร โดยมีขนาดเพียงเศษเสี้ยวของ Web SDK ปกติ Firestore Lite จะไม่รวมการชดเชยเวลาในการตอบสนอง การแคชแบบออฟไลน์ การกลับมาค้นหาอีกครั้ง และ Listener สแนปชอต แต่สำหรับกรณีการใช้งานบางอย่าง การลดขนาดไลบรารีและเวลาเริ่มต้นระบบถือเป็นการแลกเปลี่ยนที่คุ้มค่า

นำเข้า Firestore Lite

Firestore Lite พร้อมใช้งานผ่าน npm โดยเป็นส่วนหนึ่งของ SDK แบบโมดูล จึงเป็นแบบโมดูลาร์และทำ Tree Shaking ได้อย่างสมบูรณ์

ระบบรองรับรูปแบบการนำเข้าต่อไปนี้

import { initializeApp } from "firebase/app";
import {
   getFirestore,
   getDoc,
   updateDoc
} from 'firebase/firestore/lite';

Firestore Lite ไม่รองรับฟีเจอร์ API

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

การตัดสินใจว่าจะเลิกใช้ฟีเจอร์การคงอยู่แบบออฟไลน์และการแคชของ SDK ของ Firestore มาตรฐานเมื่อใดอาจเป็นเรื่องยาก คุณควรทำความเข้าใจฟีเจอร์เหล่านี้ก่อนตัดสินใจแลกกับค่าใช้จ่ายที่ต่ำกว่าของ Firestore Lite โดยทั่วไป ให้พิจารณาปัจจัยเหล่านี้เมื่อตัดสินใจว่าจะใช้ Firestore Lite หรือไม่

  • สถานะออนไลน์ - Firestore Lite เหมาะสำหรับแอปที่ไม่ต้องการข้อมูลอัปเดตแบบเรียลไทม์และมีการเชื่อมต่อ
  • ข้อจำกัดด้านขนาด - Firestore Lite เหมาะอย่างยิ่งหากคุณต้องการลดขนาดแพ็กเกจ JavaScript โดยรวม