סוגי נתונים נתמכים

בדף הזה מתוארים סוגי הנתונים שנתמכים ב-Cloud Firestore.

סוגי נתונים

בטבלה הבאה מפורטים סוגי הנתונים שנתמכים ב-Cloud Firestore. בנוסף, מתוארת סדר המיון שמשמש להשוואה בין ערכים מאותו סוג:

סוג הנתונים סדר מיון הערות
מערך לפי ערכי רכיבים

מערך לא יכול להכיל ערך אחר של מערך כאחד מהרכיבים שלו.

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

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

לדוגמה, [1, 2, 3] < [1, 2, 3, 1] < [2]. למערך [2] יש את הערך הגבוה ביותר של הרכיב הראשון. המערך [1, 2, 3] מכיל רכיבים שווים לשלושת הרכיבים הראשונים של [1, 2, 3, 1], אבל הוא קצר יותר.

בוליאני false < true
בייטים סדר הבייטים עד 1,048,487 בייטים (1MiB פחות 89 בייטים). רק 1,500 הבייטים הראשונים נלקחים בחשבון על ידי השאילתות.
תאריך ושעה כרונולוגי כשהערך מאוחסן ב-Cloud Firestore, הוא מדויק רק עד מיקרו-שניות. כל דיוק נוסף מעוגל כלפי מטה.
מספר נקודה צפה (floating-point) Numeric דיוק כפול של 64 ביט, IEEE 754.
נקודה גיאוגרפית לפי קו רוחב, ואחר כך לפי קו אורך בשלב הזה, לא מומלץ להשתמש בסוג הנתונים הזה בגלל מגבלות בשאילתות. באופן כללי, עדיף לאחסן את קו הרוחב ואת קו האורך כשדות מספריים נפרדים. אם באפליקציה שלכם יש צורך בשאילתות גיאוגרפיות פשוטות שמבוססות על מרחק, כדאי לעיין במאמר שאילתות גיאוגרפיות
מספר שלם Numeric 64-bit, signed
מפה לפי מפתחות, ואז לפי ערך

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

סדר המפתחות תמיד ממוין. לדוגמה, אם כותבים {c: "foo", a: "bar", b: "qux"}, המפה תסודר לפי מפתח ותישמר בתור {a: "bar", b: "qux", c: "foo"}.

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

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

NaN ללא
ריק ללא
חומרי עזר לפי רכיבי הנתיב (אוסף, מזהה מסמך, אוסף, מזהה מסמך…) לדוגמה, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
מחרוזת טקסט סדר הבייטים בקידוד UTF-8 עד 1,048,487 בייטים (1MiB עד 89 בייטים). רק 1,500 הבייטים הראשונים של הייצוג ב-UTF-8 נלקחים בחשבון בשאילתות.
Vector לפי מאפיין ואז לפי ערכי רכיבים ספציפיים מאפיין ההטמעה המקסימלי הנתמך הוא 2048. כדי לאחסן וקטורים עם מאפיינים גדולים יותר, משתמשים בצמצום המאפיינים.

סדר של סוג הערך

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

  1. ערכים ריקים
  2. ערכים בוליאניים
  3. ערכי NaN
  4. ערכים של מספרים שלמים ומספרים בנקודה צפה, ממוינים בסדר מספרי
  5. ערכי תאריכים
  6. ערכים של מחרוזות טקסט
  7. ערכי בייטים
  8. Cloud Firestore מקורות מידע
  9. ערכי נקודות גיאוגרפיות
  10. ערכי מערך
  11. הטמעות (embeddings) של וקטורים
  12. מיפוי ערכים