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 luôn đồng bộ 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 phản hồi hoạt động 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 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 cơ bản là tạo, đọc, cập nhật và xoá, đồ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, chỉ có REST, có kích thước nhỏ gọn, hỗ trợ việc tìm nạp một tài liệu, thực thi truy vấn và cập nhật tài liệu, chỉ bằng một phần nhỏ kích thước của Web SDK 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 một số 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 xứng đáng.

Nhập Firestore Lite

Firestore Lite có sẵn thông qua npm trong SDK theo mô-đun. Do đó, nó hoàn toàn có tính 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 mà Firestore Lite không hỗ trợ

Để giảm kích thước và tăng tốc độ, Firestore Lite sẽ loại bỏ những tính năng sau đây khỏi Firestore SDK 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, SnapshotOptionsUnsubscribe không được đưa vào.
  • Trợ giúp về tính liên tục. Các phương thức enableIndexedDBPersistence, enableMultiTabIndexedDbPersistenceclearIndexedDbPersistence 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 LoadBundleTaskLoadBundleTaskProgress không được đưa vào.

Triển khai các hoạt độ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 quen thuộc để nhận và cập nhật API. 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');

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

Có thể sẽ khó khăn khi 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à duy trì dữ liệu khi không có mạng 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 đánh đổi chúng để có được chi phí hoạt động thấp hơn của Firestore Lite. Nhìn chung, hãy cân nhắc những 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 thông tin 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 phù hợp nếu bạn muốn giảm kích thước tổng thể của gói JavaScript.