סוגי נתונים נתמכים
בדף הזה מתוארים סוגי הנתונים שנתמכים ב-Firestore.
סוגי הנתונים
בטבלה הבאה מפורטים סוגי הנתונים שנתמכים ב-Firestore. בנוסף, מפורט בה סדר המיון שמשמש להשוואה בין ערכים מאותו סוג:
| סוג נתונים | סדר מיון | הערות |
|---|---|---|
| מערך | לפי ערכי רכיבים |
מערך לא יכול להכיל ערך של מערך אחר כאחד מהרכיבים שלו. בתוך מערך, המיקום של הרכיבים נשמר. כשממיינים שני מערכים או יותר, המערכים מסודרים לפי ערכי הרכיבים שלהם. כשמשווים בין שתי מערכים, מתבצעת השוואה בין הרכיבים הראשונים של כל מערך. אם הרכיבים הראשונים שווים, משווים את הרכיבים השני וכן הלאה עד שמוצאים הבדל. אם נגמרו הרכיבים להשוואה במערך, אבל הוא שווה עד לנקודה הזו, המערך הקצר יותר יופיע לפני המערך הארוך יותר. לדוגמה, |
| בוליאני | false < true |
— |
| בייטים | סדר הבייטים | עד 1,048,487 בייטים (1 מיביבייט פחות 89 בייטים). השאילתות מתייחסות רק ל-1,500 הבייטים הראשונים. |
| תאריך ושעה | כרונולוגי | כשמאחסנים את הנתונים ב-Firestore, הם מדויקים רק עד מיקרו-שנייה. כל דיוק נוסף יעוגל כלפי מטה. |
| מספר בשיטת נקודה צפה | Numeric | דיוק כפול של 64 ביט בהתאם לתקן IEEE 754, כולל (נורמליזציה) NaN ו-+/-Infinity. |
| נקודה גיאוגרפית | לפי קו רוחב, ואחר כך לפי קו אורך | כדי לחפש לפי מרחק, אפשר לעיין במאמר בנושא חיפוש גיאוגרפי. |
| מספר שלם | Numeric | 64 ביט, חתום |
| מפה | לפי מפתחות, ואז לפי ערך | מייצג אובייקט שמוטמע במסמך. אחרי שמוסיפים שדות לאינדקס, אפשר להריץ שאילתות על שדות משנה. אם מחריגים את הערך הזה מהוספה לאינדקס, גם כל שדות המשנה מוחרגים מהוספה לאינדקס.
סדר המפתחות תמיד ממוין. לדוגמה, אם כותבים
שדות המפה ממוינים לפי מפתח ומושווים לפי צמדי מפתח/ערך. קודם מושווים המפתחות ואחר כך הערכים. אם צמדי המפתח/ערך הראשונים שווים, המערכת משווה את צמדי המפתח/ערך הבאים, וכן הלאה. אם לשתי מפות יש את כל זוגות הערכים והמפתחות, אורך המפה נלקח בחשבון. לדוגמה, המיפויים הבאים מסודרים בסדר עולה:
|
| Null | ללא | — |
| חומרי עזר | לפי רכיבי נתיב (אוסף, מזהה מסמך, אוסף, מזהה מסמך...) | לדוגמה, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]. |
| מחרוזת טקסט | סדר הבייטים בקידוד UTF-8 | עד 1,048,487 בייטים (1 מיביבייט פחות 89 בייטים). השאילתות מתייחסות רק ל-1,500 הבייטים הראשונים של ייצוג UTF-8. |
| Vector | לפי מימד ואז לפי ערכי רכיבים בודדים | המימד המקסימלי של הטמעה שנתמך הוא 2048. כדי לאחסן וקטורים עם מימדים גדולים יותר, אפשר להשתמש בהפחתת מימדים. |
סדר של סוגי ערכים
כששאילתה כוללת שדה עם ערכים מסוגים מעורבים, Firestore משתמש בסדר דטרמיניסטי שמבוסס על הייצוגים הפנימיים. הרשימה הבאה מציגה את הסדר:
- ערכי Null
- ערכים בוליאניים
- ערכים של מספרים שלמים וערכים של מספרים בשיטת נקודה צפה, ממוינים בסדר מספרי
- ערכי תאריך
- ערכים של מחרוזות טקסט
- ערכי בייט
- הפניות ל-Firestore
- ערכי נקודות גיאוגרפיות
- ערכי מערך
- הטמעות וקטוריות
- מיפוי ערכים
סדר מספרי
ב-Firestore, כל הערכים המספריים (Integer ו-Floating point) מסודרים זה לצד זה. ההשוואה של מספרים עשרוניים מתבססת על הסדר הכולל של IEEE 754, עם יוצא מן הכלל חשוב: ב-Firestore, כל הערכים של NaN עוברים נרמול, והמערכת מחשיבה אותם כקטנים מ--Infinity.