Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

支持的數據類型

本頁面介紹了 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。
地理點先按緯度,再按經度由於查詢限制,目前我們不建議使用此數據類型。通常最好將緯度和經度存儲為單獨的數字字段。如果您的應用程序需要簡單的基於距離的geoqueries,看到地理查詢
整數數字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. 映射值