פלטפורמת 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 גדול.
|
|
תמיכה בזמן אמת ובמצב אופליין
לשניהם יש ערכות SDK בזמן אמת שמותאמות לנייד, ושניהם תומכים באחסון נתונים מקומי באפליקציות שמוכנות לשימוש אופליין.
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
| תמיכה אופליין בלקוחות של Apple, Android ואינטרנט. | תמיכה אופליין בלקוחות של אפל ו-Android. | |
נוכחות
יכול להיות שימושי לדעת מתי לקוח מחובר או לא מחובר לאינטרנט. Firebase Realtime Database יכול לתעד את סטטוס החיבור של הלקוח ולספק עדכונים בכל פעם שסטטוס החיבור של הלקוח משתנה.
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
| אין תמיכה מובנית. אפשר להסתמך על התמיכה של Realtime Database בנוכחות על ידי סנכרון בין Cloud Firestore לבין Realtime Database באמצעות Cloud Functions. מידע נוסף זמין במאמר יצירת נוכחות ב-Cloud Firestore. | יש תמיכה בסטטוס הנוכחות. | |
שליחת שאילתות
אפשר לאחזר, למיין ולסנן נתונים מכל אחד ממסדי הנתונים באמצעות שאילתות.
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
שאילתות עם אינדקס עם מיון וסינון מורכבים.
|
שאילתות עומק עם תכונות מוגבלות של מיון וסינון.
|
|
כתיבה ועסקאות
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
פעולות מתקדמות של כתיבה ועסקאות.
|
פעולות בסיסיות של כתיבה ועסקאות.
|
|
אמינות וביצועים
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
Cloud Firestore הוא פתרון אזורי ורב-אזורי שניתן להרחבה אוטומטית.
|
Realtime Database הוא פתרון אזורי.
|
|
זמן פעולה תקינה
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
ביצועים גבוהים במיוחד של זמן פעולה.
|
ביצועים גבוהים של זמן פעולה.
|
|
מדרגיות
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
ההתאמה לגודל מתבצעת באופן אוטומטי.
|
כדי להרחיב את הקיבולת צריך לבצע חלוקה למקטעים (sharding).
|
|
אבטחה
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
כללים לא מדורגים שמשלבים הרשאה ואימות.
|
שפה של כללים מדורגים שמפרידה בין הרשאה ואימות.
|
|
תמחור
שני הפתרונות זמינים בתוכניות התמחור Spark ו-Blaze.
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
| החיובים מתבססים בעיקר על פעולות שבוצעו במסד הנתונים (קריאה, כתיבה, מחיקה), וגם על רוחב פס ואחסון, אבל בשיעור נמוך יותר.
Cloud Firestore תומך בתקרות הוצאה יומיות לפרויקטים של App Engine, כדי לוודא שלא תחרגו מהעלויות שמתאימות לכם. |
החיוב הוא רק על רוחב פס ואחסון, אבל לפי תעריף גבוה יותר. | |
שימוש ב-Cloud Firestore וב-Realtime Database
אפשר להשתמש בשני מסדי הנתונים באותה אפליקציה או באותו פרויקט ב-Firebase. שני מסדי הנתונים מסוג NoSQL יכולים לאחסן את אותם סוגי נתונים, והספריות של הלקוח פועלות באופן דומה. אם מחליטים להשתמש בשני בסיסי הנתונים באפליקציה, חשוב לזכור את ההבדלים שצוינו קודם.
מידע נוסף על התכונות שזמינות ב-Realtime Database וב-Cloud Firestore
מוכנים לבחור מסד נתונים?
אנחנו מקווים שההשוואה הזו עזרה לכם לבחור פתרון מסד נתונים של Firebase. עכשיו אפשר ללמוד איך מוסיפים מסד נתונים לפרויקטים ב-Firebase.
- למידע על Cloud Firestore, אפשר לעיין במאמר צעדים ראשונים עם Cloud Firestore.
- במקרה של Realtime Database, כדאי לקרוא את המאמר בנושא תחילת העבודה עבור הפלטפורמה שלכם: Apple, Android, C++, Unity, Web או REST.