SDK של Cloud Firestore Lite Web

‫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.