מכסות ומגבלות

בדף הזה מפורטות המכסות והמגבלות על הבקשות ל-Firestore.

שימוש בתוכנית בחינם

ב-Firestore יש תוכנית ללא תשלום שמאפשרת לכם להתחיל להשתמש ב-Firestore ללא עלות. הכמויות בתוכנית ללא תשלום מפורטות בטבלה הבאה.

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

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

מהדורה רגילה

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

מהדורת Enterprise

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

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

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

מגבלות

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

מסדי נתונים

מהדורה רגילה

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

100

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

המספר המקסימלי של מסדי נתונים עם מפתחות הצפנה בניהול הלקוח (CMEK) לכל פרויקט

0

כברירת מחדל, המכסה היא 0 כי התכונה הזו נמצאת מאחורי רשימת היתרים. כדי לבקש להגדיל את המכסה, צריך למלא את הטופס לבקשת גישה ל-CMEK.

מהדורת Enterprise

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

100

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

המספר המקסימלי של מסדי נתונים עם מפתחות הצפנה בניהול הלקוח (CMEK) לכל פרויקט

0

כברירת מחדל, המכסה היא 0 כי התכונה הזו נמצאת מאחורי רשימת היתרים. כדי לבקש להגדיל את המכסה, צריך למלא את הטופס לבקשת גישה ל-CMEK.

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

מהדורה רגילה

הגבלה פרטים
הגבלות על מזהי קולקציות
  • חייבים להיות תווים חוקיים בקידוד 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. כדי ליצור שם שדה עם התו גרש הפוך, צריך להוסיף לפני הגרש ההפוך את התו לוכסן הפוך (\). כדי לפשט את התהליך, אפשר להעביר את נתיב השדה כאובייקט FieldPath (לדוגמה, ראו JavaScript FieldPath) וכך להימנע משמות שדות עם מרכאות.
גודל מקסימלי של נתיב שדה ‫1,500 בייטים
הגודל המקסימלי של ערך בשדה ‫1 MiB – 89 בייטים (1,048,487 בייטים)
העומק המקסימלי של שדות במפה או במערך

20

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


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

מהדורת Enterprise

הגבלה פרטים
הגבלות על מזהי קולקציות
  • חייבים להיות תווים חוקיים בקידוד 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. כדי ליצור שם שדה עם התו גרש הפוך, צריך להוסיף לפני הגרש ההפוך את התו לוכסן הפוך (\). כדי לפשט את התהליך, אפשר להעביר את נתיב השדה כאובייקט FieldPath (לדוגמה, ראו JavaScript FieldPath) וכך להימנע משמות שדות עם מרכאות.
גודל מקסימלי של נתיב שדה ‫1,500 בייטים
הגודל המקסימלי של ערך בשדה ‫1 MiB – 89 בייטים (1,048,487 בייטים)
העומק המקסימלי של שדות במפה או במערך

20

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


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

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

מהדורה רגילה

הגבלה פרטים
גודל מקסימלי של בקשת API ‎10 MiB
מגבלת הזיכרון לשאילתה ‫128MiB
מגבלת זמן לעסקה ‫270 שניות, עם זמן תפוגה של 60 שניות ללא פעילות
המספר המקסימלי של טרנספורמציות של שדות שאפשר לבצע במסמך יחיד בפעולה Commit או בעסקה 500

מהדורת Enterprise

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

מדדים

מהדורה רגילה

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

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

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

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

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

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

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

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

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

‫40,000

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

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

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

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

7.5 KiB

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

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

‎8 MiB

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

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

    ‫1,500 בייטים

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

    מהדורת Enterprise

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

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

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

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

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

    ‫40,000

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

    7.5 KiB

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

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

    ‎8 MiB

    אורך חיים (TTL)

    מהדורה רגילה

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

    1000

    מהדורת Enterprise

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

    1000

    ייצוא/ייבוא

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

    מהדורה רגילה

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

    מהדורת Enterprise

    הגבלה פרטים
    המספר המקסימלי הכולל של בקשות ייצוא וייבוא לפרויקט שמותר לשלוח בכל דקה 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 (אין הרשאה)
    המספר המקסימלי של ביטויים שמוערכים לכל בקשה 1,000
    הגודל המקסימלי של קבוצת כללים יש שני מגבלות גודל שחלות על קבוצות כללים:
    • מגבלה של 256KB על הגודל של מקור הטקסט של קבוצת הכללים שפורסמה ממסוף Firebase או מ-CLI באמצעות firebase deploy.
    • מגבלה של 250KB על הגודל של קבוצת הכללים המהודרת שמתקבלת כש-Firebase מעבד את המקור והופך אותו לפעיל בשרת העורפי.

    מהדורת Enterprise

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

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

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

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

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