בוחרים מסד נתונים: Cloud Firestore או Realtime Database

ב-Firebase יש שני מסדי נתונים של מסמכים שמבוססים על הענן ונגישים ללקוחות. אנחנו ממליצים ללקוחות חדשים להתחיל עם Cloud Firestore:

  • ‫Cloud Firestore הוא מסד הנתונים המומלץ למסמכים שתואמים ל-JSON ברמה שמתאימה לארגונים, ויותר מ-600,000 מפתחים משתמשים בו. הוא מתאים לאפליקציות עם מודלים של נתונים עשירים שדורשים יכולת שאילתות, יכולת התאמה לעומס וזמינות גבוהה. הוא גם תומך בסנכרון לקוחות עם זמן אחזור נמוך ובגישה לנתונים אופליין.

  • ‫Realtime Database הוא מסד הנתונים הקלאסי של Firebase בפורמט JSON. הוא מתאים לאפליקציות עם מודלים פשוטים של נתונים שדורשים חיפושים פשוטים וסנכרון עם זמן אחזור קצר, עם יכולת התאמה מוגבלת לעומס.

מה עוד חשוב לקחת בחשבון?

אחרי שתעברו על הנקודות המרכזיות, תוכלו לבחור מסד נתונים. אם אתם עדיין מתלבטים, בחלק הזה נסביר על הבדלים נוספים בין Cloud Firestore ל-Realtime Database.

מודל נתונים

גם Realtime Database וגם Cloud Firestore הם מסדי נתונים מסוג NoSQL.

Cloud Firestore [ PREFERRED ] Realtime Database
הנתונים נשמרים כאוספים של מסמכים.
  • קל לאחסן נתונים פשוטים במסמכים, שדומים מאוד ל-JSON.
  • קל יותר לארגן נתונים היררכיים מורכבים בקנה מידה גדול באמצעות אוספי משנה בתוך מסמכים.
  • נדרשת פחות דה-נורמליזציה ושיטוח נתונים.

מידע נוסף על מודל הנתונים של Cloud Firestore

הנתונים נשמרים כעץ JSON אחד גדול.
  • קל מאוד לאחסן נתונים פשוטים.
  • קשה יותר לארגן נתונים היררכיים מורכבים בקנה מידה רחב.

מידע נוסף על מודל הנתונים של Realtime Database

תמיכה בזמן אמת ובמצב אופליין

שניהם כוללים ערכות SDK שמותאמות לניידים ופועלות בזמן אמת, ושניהם תומכים באחסון נתונים מקומי לאפליקציות שפועלות במצב אופליין.

Cloud Firestore [ PREFERRED ] Realtime Database
תמיכה אופליין בלקוחות Apple, ‏Android ואינטרנט. תמיכה אופליין בלקוחות Apple ו-Android.

נוכחות

כדאי לדעת מתי הלקוח מחובר או לא מחובר לאינטרנט. ‫Realtime Database של Firebase יכול לתעד את סטטוס החיבור של הלקוח ולספק עדכונים בכל פעם שסטטוס החיבור של הלקוח משתנה.

Cloud Firestore [ PREFERRED ] Realtime Database
אין תמיכה מובנית. אתם יכולים להרחיב את הנוכחות של Realtime Database על ידי סנכרון של Cloud Firestore ו-Realtime Database באמצעות Cloud Functions. מידע נוסף זמין במאמר יצירת נוכחות ב-Cloud Firestore. תמיכה בחיישן נוכחות.

שליחת שאילתות

אחזור, מיון וסינון של נתונים מכל אחד ממסדי הנתונים באמצעות שאילתות.

Cloud Firestore [ PREFERRED ] Realtime Database
שאילתות עם אינדקס עם מיון וסינון מורכבים.
  • אפשר לשרשר מסננים ולשלב סינון ומיון של מאפיין בשאילתה אחת.
  • השאילתות הן שטחיות: הן מחזירות רק מסמכים באוסף מסוים או בקבוצת אוספים מסוימת, ולא מחזירות נתונים של אוספי משנה.
  • שאילתות תמיד צריכות להחזיר מסמכים שלמים.
  • השאילתות נוספות לאינדקס כברירת מחדל: ביצועי השאילתות הם ביחס ישר לגודל של קבוצת התוצאות, ולא לגודל של קבוצת הנתונים.
שאילתות עמוקות עם תכונות מיון וסינון מוגבלות.
  • שאילתות יכולות למיין או לסנן לפי מאפיין, אבל לא את שניהם.
  • השאילתות הן עמוקות כברירת מחדל: הן תמיד מחזירות את כל עץ המשנה.
  • שאילתות יכולות לגשת לנתונים בכל רמת פירוט, עד לערכים של צומתי עלה ספציפיים בעץ ה-JSON.
  • שאילתות לא דורשות אינדקס, אבל הביצועים של שאילתות מסוימות יורדים ככל שקבוצת הנתונים גדלה.

כתיבה ועסקאות

Cloud Firestore [ PREFERRED ] Realtime Database
פעולות כתיבה וטרנזקציות מתקדמות.
  • פעולות כתיבת נתונים באמצעות פעולות הגדרה ועדכון, וגם טרנספורמציות מתקדמות כמו אופרטורים של מערכים ואופרטורים מספריים.
  • עסקאות יכולות לקרוא ולכתוב נתונים באופן אטומי מכל חלק של מסד הנתונים.
פעולות כתיבה ועסקאות בסיסיות.

אמינות וביצועים

Cloud Firestore [ PREFERRED ] Realtime Database
‫Cloud Firestore הוא פתרון אזורי ורב-אזורי שמתרחב באופן אוטומטי.
  • פתרון עם זמן אחזור נמוך, שבו זמני התגובה בדרך כלל לא עולים על 30 אלפיות השנייה.
  • הנתונים מאוחסנים בכמה מרכזי נתונים באזורים שונים, כדי להבטיח יכולת התאמה גלובלית ואמינות גבוהה.
  • זמין בהגדרות אזוריות או במספר אזורים ברחבי העולם.
מידע נוסף על מאפייני הביצועים והאמינות של Cloud Firestore זמין בהסכם רמת השירות.
‫Realtime Database הוא פתרון אזורי.
  • האפשרות הזו זמינה בהגדרות לפי אזור. מסדי הנתונים מוגבלים לזמינות אזורית בתוך אזור.
  • זמן אחזור קצר במיוחד, עם זמני תגובה אופייניים של עד 10 אלפיות השנייה. אפשרות אידיאלית לסנכרון מצב תכוף.
מידע נוסף על מאפייני הביצועים והאמינות של Realtime Database זמין בהסכם רמת השירות.

זמן הפעולה התקינה

Cloud Firestore [ PREFERRED ] Realtime Database
זמן פעולה תקינה ארוך במיוחד.
  • זמן פעולה תקינה אופייני של 99.999%.
  • אם הזמינות היא הדבר הכי חשוב, למשל באפליקציות של מסחר אלקטרוני, השתמשו ב-Cloud Firestore.
זמן פעולה תקינה ארוך.
  • זמן פעולה תקינה אופייני של 99.95%.

מדרגיות

Cloud Firestore [ PREFERRED ] Realtime Database
ההתאמה לעומס היא אוטומטית.
  • התאמה אוטומטית לחלוטין של העומס. אין הגבלות על חיבורים בו-זמניים או על קצב הכתיבה הכולל למסד הנתונים בשנייה.
  • יש מגבלות על קצבי הכתיבה למסמכים או לאינדקסים ספציפיים.
כדי להגדיל או להקטין את המערכת צריך להשתמש בפיצול נתונים (sharding).
  • אפשר להגדיל את קנה המידה לכ-200,000 חיבורים בו-זמנית ו-1,000 פעולות כתיבה בשנייה במסד נתונים אחד. כדי להרחיב את המערכת מעבר לכך, צריך לפצל את הנתונים בין כמה מסדי נתונים.
  • אין מגבלות מקומיות על קצבי הכתיבה של נתונים ספציפיים.

אבטחה

Cloud Firestore [ PREFERRED ] Realtime Database
כללים לא מדורגים שמשלבים הרשאה ואימות.
  • קריאה וכתיבה מערכות SDK לנייד שמאובטחות על ידי Cloud Firestore Security Rules.
  • קריאות וכתיבות מ-SDK של שרתים שמאובטחים באמצעות ניהול זהויות והרשאות גישה (IAM).
  • הכללים לא חלים על כל התיקיות, אלא אם משתמשים בתו כללי לחיפוש.
  • כללים יכולים להגביל שאילתות: אם תוצאות השאילתה עשויות להכיל נתונים שלמשתמש אין גישה אליהם, השאילתה כולה תיכשל.
שפת כללים מדורגים שמפרידה בין הרשאה לאימות.

תמחור

שני הפתרונות זמינים בתוכניות התמחור Spark ו-Blaze.

Cloud Firestore [ PREFERRED ] Realtime Database
החיובים הם בעיקר על פעולות שבוצעו במסד הנתונים (קריאה, כתיבה, מחיקה), ובשיעור נמוך יותר על רוחב פס ואחסון.

ב-Cloud Firestore אפשר להגדיר תקציבים חודשיים והתראות כדי להימנע מהוצאות גבוהות מדי.

מידע נוסף על תוכניות התמחור והתשלומים של Cloud Firestore

חיוב רק על רוחב פס ואחסון, אבל בתעריף גבוה יותר.

מידע נוסף על תוכניות התמחור והתשלומים של Realtime Database

שימוש גם ב-Cloud Firestore וגם ב-Realtime Database

אפשר להשתמש בשני מסדי הנתונים באותה אפליקציית Firebase או באותו פרויקט ב-Firebase. שני מסדי הנתונים NoSQL יכולים לאחסן את אותם סוגי נתונים, וספריות הלקוח פועלות באופן דומה. אם אתם מחליטים להשתמש בשני מסדי הנתונים באפליקציה, חשוב לזכור את ההבדלים שצוינו קודם.

מידע נוסף על התכונות שזמינות ב-Realtime Database וב-Cloud Firestore.

מוכנים לבחור מסד נתונים?

אנחנו מקווים שההשוואה הזו עזרה לכם לבחור פתרון למסד נתונים ב-Firebase. עכשיו אתם יכולים ללמוד איך להוסיף מסד נתונים לפרויקטים שלכם ב-Firebase.