Firestore הוא פתרון טוב של מסד נתונים שניתן להרחבה, שמאפשר לשמור על סנכרון הנתונים בין לקוחות אינטרנט.
להרבה אפליקציות, התמיכה המנוהלת של Firestore באפליקציות אופליין חשובה במיוחד, כי היא מאפשרת לכם ליצור אפליקציות רספונסיביות שפועלות ללא קשר לזמן האחזור ברשת או לחיבור לאינטרנט. אבל ערכות SDK עשירות בתכונות הן גדולות יותר. מה מציעה Firebase לאפליקציות שצריכות רק להשתמש בפעולות בסיסיות של יצירה, קריאה, עדכון ומחיקה, ולא צריכות תמיכה מנוהלת במצב אופליין?
הפתרון: Firestore Lite
Firestore Lite הוא SDK קל משקל ועצמאי של Firestore שמבוסס על REST בלבד. הוא תומך באחזור של מסמך יחיד, בהרצת שאילתות ובעדכונים של מסמכים, וגודלו קטן בהרבה מהגודל של Web 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 לא נכללות התכונות הבאות מ-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.