Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

支持的數據類型

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

本頁面介紹 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 字節(1 MiB - 89 字節)。查詢僅考慮前 1,500 個字節。
日期和時間按時間順序排列存儲在 Cloud Firestore 中時,精確到微秒;任何額外的精度都會向下舍入。
浮點數數字64 位雙精度,IEEE 754。
地理點按緯度,然後經度由於查詢限制,目前我們不建議使用此數據類型。通常最好將緯度和經度存儲為單獨的數字字段。如果您的應用需要簡單的基於距離的地理查詢,請參閱地理查詢
整數數字64 位,簽名
地圖按鍵,然後按值

表示嵌入在文檔中的對象。索引後,您可以查詢子字段。如果您將此值從索引中排除,則所有子字段也會從索引中排除。

鍵排序總是排序的。例如,如果你寫{c: "foo", a: "bar", b: "qux"}映射按鍵排序並保存為{a: "bar", b: "qux", c: "foo"}

Map 字段按鍵排序並按鍵值對進行比較,首先比較鍵,然後比較值。如果第一個鍵值對相等,則比較下一個鍵值對,依此類推。如果兩個映射以相同的鍵值對開頭,則考慮映射長度。例如,以下地圖按升序排列:

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

無效的沒有任何
參考按路徑元素(集合、文檔 ID、集合、文檔 ID...)例如, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]
文本字符串UTF-8 編碼的字節順序最多 1,048,487 字節(1 MiB - 89 字節)。查詢僅考慮 UTF-8 表示的前 1,500 個字節。

值類型排序

當查詢涉及具有混合類型值的字段時,Cloud Firestore 使用基於內部表示的確定性排序。以下列表顯示了順序:

  1. 空值
  2. 布爾值
  3. 整數和浮點值,按數字順序排序
  4. 日期值
  5. 文本字符串值
  6. 字節值
  7. Cloud Firestore 參考資料
  8. 地理點值
  9. 數組值
  10. 映射值