SDK web Cloud Firestore Lite

Firestore là một giải pháp cơ sở dữ liệu có thể mở rộng thích hợp để đồng bộ hoá dữ liệu trên các ứng dụng Web.

Đối với nhiều ứng dụng, tính nă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 tạo các ứng dụng thích ứng hoạt động được bất kể độ trễ mạng hoặc khả năng kết nối Internet. Tuy nhiên, các SDK giàu tính năng cũng phải đánh đổi bằng kích thước. Firebase cung cấp những gì cho những ứng dụng chỉ cần thực hiện các thao tác tạo, đọc, cập nhật và xoá cơ bản, đồng thời không cần hỗ trợ ngoại tuyến có quản lý?

Giải pháp: Firestore Lite

Firestore Lite là một SDK Firestore độc lập, gọn nhẹ chỉ dành cho REST, hỗ trợ các lần tìm nạp tài liệu, thực thi truy vấn và cập nhật tài liệu, ở một phần kích thước SDK Web thông thường. Firestore Lite bỏ qua việc bù độ trễ, lưu vào bộ nhớ đệm ngoại tuyến, tiếp tục truy vấn và trình nghe tổng quan nhanh. Tuy nhiên, đố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 sẽ mang lại sự đánh đổi lớn.

Nhập Firestore Lite

Firestore Lite được cung cấp thông qua npm như một phần của SDK mô-đun. Do đó, công cụ này hoàn toàn theo mô-đun và có thể thay đổi dạng cây.

Kiểu nhập sau đượ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ợ

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

  • Trình xử lý sự kiệnDocumentSnapshot. Không bao gồm phương thức onSnapshot và các đối tượng DocumentChange, SnapshotListenerOptions, SnapshotMetadata, SnapshotOptionsUnsubscribe.
  • Trình trợ giúp liên tục. Các phương thức enableIndexedDBPersistence, enableMultiTabIndexedDbPersistenceclearIndexedDbPersistence không được bao gồm.
  • Gói khôi phục dữ liệu. Phương thức loadBundle và các phương thức liên quan, cũng như các đối tượng LoadBundleTaskLoadBundleTaskProgress sẽ không được đưa vào.

Triển khai tính năng 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 API quen thuộc, nhận và cập nhật. Các trường hợp sử dụng để thêm dữ liệunhận dữ liệu đều á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');

Các trường hợp nên dùng Firestore Lite

Có thể bạn sẽ gặp khó khăn khi quyết định thời điểm ngừng sử dụng các tính năng lưu trữ ngoại tuyến và lưu vào bộ nhớ đệm của SDK Firestore tiêu chuẩn. Bạn nên hiểu rõ những tính năng này trước khi quyết định từ bỏ để đổi lấy mức hao tổn thấp hơn của Firestore Lite. Nhìn chung, hãy cân nhắc các yếu tố sau đây khi quyết định có dùng Firestore Lite hay không:

  • Trạng thái trực tuyến – Firestore Lite phù hợp với những ứ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 là lựa chọn tuyệt vời nếu bạn muốn giảm kích thước gói JavaScript tổng thể.