本页面介绍了 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 参考资料
- 地理点值
- 数组值
- 映射值