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