Firestore là một giải pháp cơ sở dữ liệu có thể mở rộng hiệu quả để đồ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 bất kể độ trễ mạ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. Mục tiêu Firebase có cung cấp cho các ứng dụng chỉ cần sử dụng tính năng tạo, đọc, cập nhật cơ bản không và xoá hoạt động mà 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 chỉ dành cho REST, độc lập và có kích thước nhỏ, hỗ trợ các thao tác tìm nạp, thực thi truy vấn và cập nhật tài liệu đơn lẻ, với kích thước chỉ 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ễ, lưu vào bộ nhớ đệm ngoại tuyến, 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 sẽ tạo ra sự đánh đổi lớn.
Nhập Firestore Lite
Bạn có thể sử dụng Firestore Lite thông qua npm trong SDK mô-đun. Đó là do đó hoàn toàn theo mô-đun và có thể rung 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 loại bỏ những tính năng này khỏi phiên bản SDK Firestore:
- Trình xử lý sự kiệnDocumentSnapshot. Phương thức
onSnapshot
vàDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
Không bao gồm các đối tượngSnapshotOptions
vàUnsubscribe
. - Trình trợ giúp liên tục.
enableIndexedDBPersistence
, Phương thứcenableMultiTabIndexedDbPersistence
vàclearIndexedDbPersistence
không được tính. - Gói Firestore. Phương thức
loadBundle
và các phương thức liên quan cũng như đối tượngLoadBundleTask
vàLoadBundleTaskProgress
không được đưa vào.
Triển khai các lệnh 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ể làm cho tất cả API quen thuộc trở thành và cập nhật cuộc gọi. Các trường hợp sử dụng thêm dữ liệu và nhậ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');
Các trường hợp nên dùng Firestore Lite
Bạn có thể 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ữ cục bộ và lưu vào bộ nhớ đệm của SDK Firestore tiêu chuẩn. Bạn nên hiểu rõ các tính năng này trước khi quyết định đánh đổi chúng để giảm chi phí của Firestore Lite. Nhìn chung, hãy cân nhắc các yếu tố sau khi quyết định có 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 là lựa chọn tuyệt vời nếu bạn muốn giảm kích thước tổng thể của gói JavaScript.