本頁面介紹了 Cloud Firestore 支持的數據類型。
數據類型
下表列出了 Cloud Firestore 支持的數據類型。它還描述了比較相同類型的值時使用的排序順序:
數據類型 | 排序 | 筆記 |
---|---|---|
大批 | 按元素值 | 數組不能包含另一個數組值作為其元素之一。 在數組中,元素保持分配給它們的位置。對兩個或多個數組進行排序時,數組將根據其元素值進行排序。 比較兩個數組時,比較每個數組的第一個元素。如果第一個元素相等,則比較第二個元素,依此類推,直到發現差異。如果一個數組用完了要比較的元素但等於那一點,則較短的數組排在較長的數組之前。 例如, |
布爾值 | false < true | — |
字節 | 字節順序 | 最多 1,048,487 字節(1 MiB - 89 字節)。查詢僅考慮前 1,500 個字節。 |
日期和時間 | 按時間順序 | 存儲在 Cloud Firestore 中時,精確到微秒;任何額外的精度都會向下舍入。 |
浮點數 | 數字 | 64 位雙精度,IEEE 754。 |
地理位置 | 先緯度再經度 | 由於查詢限制,目前我們不建議使用此數據類型。通常最好將緯度和經度存儲為單獨的數字字段。如果您的應用程序需要簡單的基於距離的地理查詢,請參閱地理查詢 |
整數 | 數字 | 64 位,有符號 |
地圖 | 按鍵,然後按值 | 表示嵌入在文檔中的對象。建立索引後,您可以查詢子字段。如果您從索引中排除此值,則所有子字段也從索引中排除。 鍵順序總是排序的。例如,如果您寫 Map字段按鍵排序,按鍵值對進行比較,先比較鍵,再比較值。如果第一個鍵值對相等,則比較下一個鍵值對,依此類推。如果兩個映射以相同的鍵值對開頭,則考慮映射長度。例如,以下地圖按升序排列: |
無效的 | 沒有任何 | — |
參考 | 按路徑元素(集合、文檔 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 使用基於內部表示的確定性排序。以下列表顯示順序:
- 空值
- 布爾值
- 整數和浮點值,按數字順序排序
- 日期值
- 文本字符串值
- 字節值
- Cloud Firestore 參考資料
- 地理點值
- 數組值
- 映射值