SDK web Cloud Firestore Lite

Firestore là một giải pháp cơ sở dữ liệu có khả năng mở rộng tốt để giữ cho dữ liệu được đồng bộ hóa trên các máy khách Web.

Đối với nhiều ứng dụng, hỗ trợ ngoại tuyến được quản lý của Firestore đặc biệt quan trọng, cho phép bạn xây dựng các ứng dụng đáp ứng hoạt động bất kể độ trễ mạng hoặc kết nối Internet. Tuy nhiên, SDK giàu tính năng lại có chi phí về kích thước. Firebase cung cấp những gì cho các ứng dụng chỉ cần sử dụng các thao tác tạo, đọc, cập nhật và xóa cơ bản và không cần hỗ trợ ngoại tuyến được quản lý?

Giải pháp: Firestore Lite

Firestore Lite là SDK Firestore nhẹ, độc lập chỉ dành cho REST, hỗ trợ tìm nạp tài liệu đơn lẻ, thực thi truy vấn và cập nhật tài liệu với kích thước bằng một phần nhỏ kích thước SDK Web thông thường. Firestore Lite bỏ qua tính năng bù độ trễ, bộ nhớ đệm ngoại tuyến, tiếp tục truy vấn và trình xử lý ảnh chụp nhanh, nhưng đối với các trường hợp sử dụng cụ thể, việc giảm kích thước thư viện và thời gian khởi động mang lại sự cân bằng tuyệt vời.

Nhập Firestore Lite

Firestore Lite có sẵn thông qua npm như một phần của SDK mô-đun . Do đó, nó hoàn toàn theo mô-đun và có thể rung được trên cây.

Kiểu nhập sau đây được hỗ trợ.

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

Các tính năng API không được Firestore Lite hỗ trợ

Về kích thước và tốc độ, Firestore Lite bỏ qua các tính năng này khỏi SDK Firestore tiêu chuẩn:

  • Trình xử lý sự kiện DocumentSnapshot . Phương thức onSnapshotDocumentChange , SnapshotListenerOptions , SnapshotMetadata , SnapshotOptionsUnsubscribe không được bao gồm.
  • Người giúp đỡ kiên trì . Các phương thức enableIndexedDBPersistence , enableMultiTabIndexedDbPersistenceclearIndexedDbPersistence không được bao gồm.
  • Gói Firestore . Phương thức loadBundle và các phương thức liên quan cũng như các đối tượng LoadBundleTaskLoadBundleTaskProgress không được bao gồm.

Triển khai tìm nạp, truy vấn và cập nhật tài liệu

Sau khi nhập Firestore Lite, bạn có thể thực hiện tất cả các lệnh gọi nhận và cập nhật API quen thuộc. Các trường hợp sử dụng để thêm dữ liệunhận dữ liệu đều được áp dụng.

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');

Khi nào nên sử dụng Firestore Lite

Có thể khó quyết định khi nào nên từ bỏ các tính năng lưu trữ và lưu trữ ngoại tuyến tiêu chuẩn của Firestore SDK. Bạn nên hiểu những tính năng này trước khi quyết định đổi chúng để lấy Firestore Lite có chi phí thấp hơn. Nói chung, hãy cân nhắc những yếu tố này khi quyết định có nên sử dụng Firestore Lite hay không:

  • Trạng thái trực tuyến - Firestore Lite phù hợp với các ứng dụng không cần cập nhật trực tiếp và có kết nối.
  • Hạn chế về kích thước - Firestore Lite rất phù hợp nếu bạn muốn giảm kích thước gói JavaScript tổng thể của mình.