SDK web Cloud Firestore Lite

Firestore là một giải pháp cơ sở dữ liệu có thể mở rộng, giú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, giúp bạn xây dựng các ứng dụng thích ứng hoạt động bất kể độ trễ mạng hoặc kết nối Internet. Tuy nhiên, SDK có nhiều tính năng sẽ có kích thước lớn. 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à 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 gọn nhẹ, độc lập, chỉ hỗ trợ 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 chỉ bằng một phần nhỏ so với SDK Web thông thường. Firestore Lite bỏ qua tính năng bù độ trễ, lưu vào bộ nhớ đệm khi không có mạng, tiếp tục truy vấn và trình nghe ả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 là một sự đánh đổi tuyệt vời.

Nhập Firestore Lite

Firestore Lite được cung cấp thông qua npm dưới dạng một phần của SDK mô-đun. Do đó, thư viện này hoàn toàn theo mô-đun và có thể loại bỏ mã không dùng đến.

Chúng tôi hỗ trợ kiểu nhập sau đây.

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ợ

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

  • Trình xử lý sự kiện DocumentSnapshot. Phương thức onSnapshot và các đối tượng DocumentChange, SnapshotListenerOptions, SnapshotMetadata, SnapshotOptions và Unsubscribe không được đưa vào.
  • Trình trợ giúp lưu trữ lâu dài. Các phương thức enableIndexedDBPersistence, enableMultiTabIndexedDbPersistence và clearIndexedDbPersistence không được đưa vào.
  • 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 LoadBundleTask và LoadBundleTaskProgress không được đưa vào.

Triển khai các thao tác 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ả lệnh gọi API quen thuộc để lấy và cập nhật dữ liệu. Các trường hợp sử dụng để thêm dữ liệu và lấy 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');

Trường hợp nên sử dụng Firestore Lite

Có thể khó quyết định thời điểm ngừng sử dụng các tính năng lưu vào bộ nhớ đệm và lưu trữ cố định khi không có mạng của SDK Firestore tiêu chuẩn. Bạn nên tìm hiểu các tính năng này trước khi quyết định đánh đổi chúng để giảm mức hao tổn của Firestore Lite. Nhìn chung, hãy cân nhắc các yếu tố sau 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 những ứng dụng không cần cập nhật trực tiếp và có kết nối.
  • Giới hạn kích thước – Firestore Lite là lựa chọn phù hợp nếu bạn muốn giảm kích thước tổng thể của gói JavaScript.