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ộ 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 tạo 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, các SDK giàu tính năng thường có chi phí lớn. Firebase cung cấp 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à một Firestore SDK độc lập, nhẹ, 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 một phần nhỏ so với kích thước Web SDK thông thường. Firestore Lite bỏ qua bù độ trễ, 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 tạo ra sự cân bằng lớn.
Nhập Firestore Lite
Firestore Lite có sẵn qua npm như một phần của SDK mô-đun . Do đó, nó 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 này 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ượngDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
vàUnsubscribe
không được bao gồm. - Người trợ giúp bền bỉ . Các phương thức
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
vàclearIndexedDbPersistence
không được bao gồm. - Các bó Firestore . Phương thức
loadBundle
và các phương thức liên quan cũng như các đối tượngLoadBundleTask
vàLoadBundleTaskProgress
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. Tất cả các trường hợp sử dụng để thêm dữ liệu và lấy 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 sử dụng Firestore Lite
Có thể rất 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 của SDK Firestore tiêu chuẩn. Bạn nên hiểu các tính năng này trước khi quyết định đổi chúng để lấy chi phí thấp hơn của Firestore Lite. Nói chung, hãy cân nhắc các yếu tố này 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 gói JavaScript tổng thể của mình.