Firestore הוא פתרון טוב של מסד נתונים שניתן להרחבה, שמאפשר לשמור על סנכרון הנתונים בין לקוחות אינטרנט.
עבור אפליקציות רבות, התמיכה המנוהלת באופליין של Firestore חשובה במיוחד, כי היא מאפשרת לכם לבנות אפליקציות רספונסיביות שפועלות ללא קשר לזמן האחזור ברשת או לחיבור לאינטרנט. אבל ל-SDK עשיר בתכונות יש עלות גודל. מה מציעה Firebase לאפליקציות שצריכות להשתמש רק בפעולות בסיסיות של יצירה, קריאה, עדכון ומחיקה, ולא צריכות תמיכה מנוהלת באופליין?
הפתרון: Firestore Lite
Firestore Lite הוא SDK קל משקל ועצמאי של Firestore שמבוסס על REST בלבד. הוא תומך באחזור של מסמך יחיד, בהרצת שאילתות ובעדכונים של מסמכים, וגודלו קטן בהרבה מגודל ה-SDK הרגיל לאינטרנט. ב-Firestore Lite אין פיצוי על השהיה, שמירה במטמון במצב אופליין, המשך שאילתות ומאזינים של תמונות מצב, אבל בתרחישי שימוש מסוימים, הקיזוז בין גודל הספרייה לזמן ההפעלה הוא משתלם.
ייבוא של Firestore Lite
Firestore Lite זמין דרך npm כחלק מערכת ה-SDK המודולרית. לכן הוא מודולרי לחלוטין וניתן להסרה של קוד שלא בשימוש (tree-shaking).
המערכת תומכת בסגנון הייבוא הבא.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
תכונות API שלא נתמכות ב-Firestore Lite
כדי להקטין את הגודל ולשפר את המהירות, בספריית Firestore Lite SDK לא נכללות התכונות הבאות של ספריית 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.