שימוש ומגבלות

במדריך הזה מוסבר מהן המגבלות של Cloud Firestore, ובמחירון של Cloud Firestore מוסבר בפירוט מהן העלויות של Cloud Firestore, כולל דברים שכדאי לשים לב אליהם.

מעקב אחר השימוש

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

שימוש מפורט במסוף Google Cloud

כשיוצרים פרויקט Firebase, יוצרים גם פרויקט Google Cloud. מכסות ל-API: Cloud Firestore וגם מכסות ל-App Engine דפים במסוף Google Cloud עוקבים אחרי השימוש והמכסה ב-Cloud Firestore מידע.

מכסה בחינם

ב-Cloud Firestore יש מכסה בחינם שמאפשרת לך להתחיל לעבוד עם את מסד הנתונים (default) ללא עלות. סכומי המכסות בחינם מפורטים בהמשך. אם אתם צריכים עוד מכסה, צריך להפעיל את החיוב בפרויקט Google Cloud.

המכסות חלות מדי יום ומתאפסות בסביבות חצות לפי שעון החוף המערבי של ארה"ב.

רק מסד הנתונים (default) עומד בדרישות המכסה בחינם.

רמת חברות ללא תשלום מכסה
נתונים מאוחסנים 1GiB
קריאות מסמכים 50,000 ביום
כתיבה של מסמכים 20,000 ביום
מחיקה של מסמכים 20,000 ביום
העברת נתונים יוצאת 10GB לחודש

הפעולות והתכונות הבאות לא כוללות שימוש בחינם. כדי להשתמש בתכונות הבאות, צריך להפעיל את החיוב:

  • שימוש במסדי נתונים בעלי שם (לא ברירת מחדל)
  • מחיקה ב-TTL
  • נתוני PITR
  • נתוני גיבוי
  • פעולות שחזור

מידע נוסף על אופן החיוב של התכונות האלה זמין במאמר תמחור אחסון.

מגבלות רגילות

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

מסדי נתונים

הגבלה פרטים
המספר המקסימלי של מסדי נתונים לכל פרויקט

100

אפשר לפנות לתמיכה כדי לבקש להגדיל את המכסה הזו.

אוספים, מסמכים ושדות

הגבלה פרטים
אילוצים על מזהי קולקציות
  • צריכים להיות תווי UTF-8 חוקיים
  • הגודל המקסימלי הוא 1,500 בייטים
  • אסור להשתמש בקו נטוי לפנים (/)
  • לא יכול להכיל רק נקודה אחת (.) או נקודות כפולות (..)
  • לא ניתן להתאים לביטוי הרגולרי __.*__
העומק המקסימלי של אוספי משנה 100
מגבלות על מזהי מסמכים
  • צריך להזין תווי UTF-8 חוקיים
  • הגודל המקסימלי הוא 1,500 בייטים
  • לא יכולות להכיל קו נטוי קדימה (/)
  • לא יכול להכיל רק נקודה אחת (.) או נקודות כפולות (..)
  • לא ניתן להתאים לביטוי הרגולרי __.*__
  • אם מייבאים ישויות מ-Datastore למסד נתונים של Firestore, מזהי הישות המספריים נחשפים בתור __id[0-9]+__
הגודל המקסימלי של שם המסמך 6 KiB
הגודל המקסימלי של מסמך 1 MiB (1,048,576 בייטים)
אילוצים על שמות שדות
  • צריך להזין תווי UTF-8 חוקיים
  • לא ניתן להתאים לביטוי הרגולרי __.*__
הגודל המקסימלי של שם שדה 1,500 בייטים
מגבלות בנתיבי השדות
  • יש להפריד בין שמות השדות באמצעות נקודה אחת (.)
  • אפשר להעביר אותו כמחרוזת של פלחים (.) שמפרידה ביניהם נקודה, כאשר כל פלח הוא שם שדה פשוט או שם שדה במירכאות (מוגדר בהמשך).
שם שדה פשוט הוא שם שכל התנאים הבאים מתקיימים לגביו:
  • מכיל רק את התווים a-z,‏ A-Z,‏ 0-9 וקווים תחתונים (_)
  • לא מתחיל ב-0-9
שם שדה שמופיע במירכאות מתחיל ומסתיים בתווית הסוגריים הניצבים (`). לדוגמה, foo.`x&y` מתייחס לשדה x&y שמוטמע בשדה foo. כדי ליצור שם שדה עם התו backtick, צריך להשתמש בתו backslash (\) כדי להימנע מהצגת התו backtick. כדי להימנע משימוש במירכאות בשמות שדות, אפשר להעביר את נתיב השדה כאובייקט FieldPath (לדוגמה, ראו JavaScript FieldPath).
הגודל המקסימלי של נתיב שדה 1,500 בייטים
הגודל המקסימלי של ערך בשדה 1MiB – 89 בייטים (1,048,487 בייטים)
העומק המקסימלי של שדות במפה או במערך

20

שדות מפה ומערך מוסיפים רמה אחת לעובי הכולל של אובייקט. לדוגמה, לאובייקט הבא יש עומק כולל של שלוש רמות:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

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

בנוסף למגבלות האלה, כדאי לעיין גם בשיטות המומלצות לתכנון לפי קנה מידה.

הגבלה פרטים
הגודל המקסימלי של בקשת API ‎10 MiB
מגבלת הזמן לעסקה 270 שניות, עם זמן תפוגה של 60 שניות ללא פעילות

מדדים

המגבלות הבאות חלות על אינדקסים של שדה יחיד ועל אינדקסים מורכבים:

הגבלה פרטים
המספר המקסימלי של אינדקסים מורכבים במסד נתונים
המספר המקסימלי של הגדרות של שדה יחיד במסד נתונים
  • 200 אם לא הפעלתם חיוב עבור לפרויקט Google Cloud שלך.

    אם אתם זקוקים להגדלת מכסה, עליכם הפעלת החיוב בפרויקט Google Cloud.

  • 500 כשמפעילים את החיוב בפרויקט Google Cloud.

הגדרה אחת ברמת השדה יכולה להכיל כמה הגדרות לאותו שדה. לדוגמה, פטור מהוספה לאינדקס בשדה יחיד ומדיניות TTL באותו שדה נספר כהגדרת שדה אחד כדי להגיע למגבלה.

המספר המקסימלי של רשומות במדד לכל מסמך

40,000

מספר הרשומות של האינדקס הוא הסכום של הדברים הבאים עבור מסמך:

  • מספר הרשומות באינדקס עם שדה יחיד
  • מספר הרשומות באינדקס המורכב

כדי לראות איך Cloud Firestore הופך מסמך וקבוצה של יוצרת אינדקסים לרשומות אינדקס, דוגמה זו לספירת רשומות אינדקס.

המספר המקסימלי של שדות במסד נתונים מורכב 100
הגודל המקסימלי של רשומה במדד

7.5 KiB

במאמר גודל רשומת האינדקס מוסבר איך Cloud Firestore מחשב את גודל רשומת האינדקס.

הסכום המקסימלי של הגדלים של רשומות האינדקס של מסמך

8MiB

הגודל הכולל של כל מסמך הוא הסכום של הרכיבים הבאים:

  • סכום הגודל של רשומות האינדקס בשדה יחיד של מסמך
  • הסכום של הגודל של הרשומות של אינדקס מורכב של מסמך
  • הגודל המקסימלי של ערך שדה שנוסף לאינדקס

    1,500 בייטים

    ערכי שדות שגדולים מ-1,500 בייטים ייחתכו. שאילתות שכוללות ערכים בשדות קטועים עשויים להחזיר תוצאות לא עקביות.

    אורך חיים (TTL)

    הגבלה פרטים
    המספר המקסימלי של הגדרות של שדה יחיד במסד נתונים
    • 200 אם לא הפעלתם חיוב עבור לפרויקט Google Cloud שלך.

      אם אתם זקוקים להגדלת מכסה, עליכם הפעלת החיוב בפרויקט Google Cloud.

    • 500 אם מפעילים חיוב בפרויקט Google Cloud.

    הגדרה אחת ברמת השדה יכולה להכיל כמה הגדרות לאותו שדה. לדוגמה, פטור מהוספה לאינדקס בשדה יחיד ומדיניות TTL באותו שדה נספר כהגדרת שדה אחד כדי להגיע למגבלה.

    ייצוא/ייבוא

    המגבלות הבאות חלות על פעולות ייבוא וייצוא מנוהלות:

    הגבלה פרטים
    המספר המקסימלי הכולל של בקשות ייצוא וייבוא שמותר לשלוח בכל דקה בפרויקט 20
    המספר המקסימלי של פעולות ייצוא וייבוא בו-זמנית 50
    המספר המקסימלי של מסננים של מזהי אוספים לבקשות ייצוא וייבוא 100

    כללי אבטחה

    הגבלה פרטים
    המספר המקסימלי של קריאות ל-exists(), ל-get() ול-getAfter() בכל בקשה
    • 10 לבקשות למסמך יחיד ובקשות שאילתה.
    • 20 לקריאות, טרנזקציות של מסמכים מרובים וכתיבה באצווה. המגבלה הקודמת של 10 חלה גם על כל אחד מהם פעולה.

      לדוגמה, נניח שיצרתם בקשת כתיבה באצווה עם 3 פעולות כתיבה, ושכללי האבטחה שלכם משתמשים ב-2 קריאות גישה למסמך כדי לאמת כל פעולת כתיבה. במקרה כזה, כל פעולת כתיבה משתמשת ב-2 מתוך 10 קריאות הגישה שלה, ובבקשת הכתיבה בכמות גדולה משתמשים ב-6 מתוך 20 קריאות הגישה שלה.

    חריגה מכל אחת מהמגבלות תגרום לשגיאה של דחיית ההרשאה.

    ייתכן שחלק מהקריאות לגישה למסמכים יישמרו במטמון, ושיחות שנשמרו במטמון לא נכללות בחישוב של המגבלות.

    עומק הקינון המקסימלי של משפטי match 10
    אורך נתיב מקסימלי, במקטעי נתיב, מותר בתוך קבוצה של match דוחות 100
    מספר מקסימלי של משתני לכידת נתיב שמותר בקבוצה של דפי match בתצוגת עץ 20
    עומק הקריאה המקסימלי של הפונקציה 20
    המספר המקסימלי של ארגומנטים של פונקציות 7
    המספר המקסימלי של let קישורי משתנים לכל פונקציה 10
    המספר המקסימלי של הפעלות של פונקציות רקורסיביות או מחזוריות 0 (not permitted)
    המספר המקסימלי של ביטויים שאפשר להעריך בכל בקשה 1,000
    הגודל המקסימלי של קבוצת כללים קבוצות כללים חייבות לציית לשתי מגבלות גודל:
    • מגבלה של 256KB על גודל מקור הטקסט של כללי המדיניות שפורסם מהמסוף Firebase או מה-CLI באמצעות firebase deploy.
    • מגבלה של 250KB על הגודל של קבוצת הכללים המורכבת שמובילה כשמערכת Firebase מעבדת את המקור והופכת אותו לפעיל בקצה העורפי.

    ניהול ההוצאות

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

    הגדרת תקציב חודשי

    כדי לעקוב אחרי העלויות של Cloud Firestore, צריך ליצור תקציב חודשי במסוף Google Cloud. התקציבים לא יגבילו את השימוש, אבל אפשר להגדיר התראות לקבל התראה כשאתם מתקרבים לעלויות המתוכננות שלכם או חורגים מהן. בחודש.

    כדי להגדיר תקציב, נכנסים לדף חיוב. במסוף Google Cloud וליצור תקציב עבור Cloud Billing חשבון. אתם יכולים להשתמש בהגדרות ברירת המחדל של ההתראות או לשנות את ההתראות כדי לשלוח התראות לגבי אחוזים שונים מהתקציב החודשי.

    מידע נוסף על להגדיר תקציבים והתראות לגבי תקציבים.