Firestore הוא פתרון מסד נתונים גמיש שמאפשר לסנכרן נתונים בין לקוחות אינטרנט.
בתכנון אפליקציות רבות, התמיכה המנוהלת של Firestore במצב אופליין חשובה במיוחד, כי היא מאפשרת ליצור אפליקציות רספונסיביות שפועלות ללא קשר לזמן האחזור ברשת או לחיבור לאינטרנט. עם זאת, ערכות SDK עם הרבה תכונות גדולות יותר. מה Firebase מציע לאפליקציות שצריכות להשתמש רק בפעולות בסיסיות של יצירה, קריאה, עדכון ומחיקה, ולא צריכות תמיכה מנוהלת אופליין?
פתרון: Firestore Lite
Firestore Lite הוא ערכת SDK של Firestore קלילה ועצמאית ל-REST בלבד, שתומכת באחזור של מסמך יחיד, בהרצת שאילתות ובעדכוני מסמכים, בחלק קטן מהגודל של ערכת ה-SDK הרגילה לאינטרנט. ב-Firestore Lite לא ניתן להשתמש בתכונות כמו תגמול על זמן אחזור, שמירה במטמון אופליין, המשך של שאילתות ומאזינים לתמונות מצב, אבל במקרים מסוימים, החיסכון בגודל הספרייה ובזמן ההפעלה הוא שווה את הוויתור.
ייבוא של Firestore Lite
Firestore Lite זמין דרך npm כחלק מ-ה-SDK המודולרי. כך הוא גם מודולרי לחלוטין וגם ניתן לשימוש ב-tree-shake.
המערכת תומכת בסגנון הייבוא הבא.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
תכונות API שלא נתמכות ב-Firestore Lite
כשמדובר בגודל ומהירות, Firestore Lite משמיט את התכונות הבאות מ-Firestore SDK הסטנדרטי:
- פונקציות טיפול באירועים של DocumentSnapshot. השיטה
onSnapshot
והאובייקטיםDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
ו-Unsubscribe
לא נכללים. - עזרה בהתמדה. השיטות
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
ו-clearIndexedDbPersistence
לא כלולות. - חבילות Firestore. השיטה
loadBundle
והשיטות הקשורות, והאובייקטיםLoadBundleTask
ו-LoadBundleTaskProgress
לא נכללים.
הטמעת אחזור, שאילתה ועדכון של מסמכים
אחרי שמייבאים את Firestore Lite, אפשר לבצע את כל הקריאות המוכרות של API לקבלה ולעדכון. כל התרחישים לדוגמה להוספת נתונים ולקבלת נתונים רלוונטיים.
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');
מתי כדאי להשתמש ב-Firestore Lite
לפעמים קשה להחליט מתי להפסיק להשתמש בתכונות השמירה אופליין והאחסון במטמון של Firestore SDK הסטנדרטי. כדאי להבין את התכונות האלה לפני שמחליטים לוותר עליהן תמורת התקורה הנמוכה יותר של Firestore Lite. באופן כללי, כדאי לשקול את הגורמים הבאים כשמחליטים אם להשתמש ב-Firestore Lite:
- סטטוס אונליין – Firestore Lite מתאים לאפליקציות שלא דורשות עדכונים בזמן אמת ושיש להן קישוריות.
- אילוצים של גודל – Firestore Lite הוא פתרון מצוין אם רוצים לצמצם את הגודל הכולל של חבילת ה-JavaScript.