我的Firestore集合的文档带有字符串字段,该字段可以为 null 。
我期望如果我查询:
Collection("products").Where("producedDate", "<", "2018-01-15")
我将获取“ producedDate”早于“ 2018-10-15”的所有产品,包括那些“ producedDate”为空的产品。
但是实际上我没有得到nulls。
null
这是故意的还是一个错误?
它打算以这种方式工作。该文档指出:
当查询涉及具有 混合类型值的 字段时,Cloud Firestore将基于内部表示使用确定性排序。以下列表显示了顺序: 空值 布尔值 整数和浮点值,按数字顺序排序 日期值 文字字串值 […]
当查询涉及具有 混合类型值的 字段时,Cloud Firestore将基于内部表示使用确定性排序。以下列表显示了顺序:
请注意,仅当您使用混合类型的值运行查询时,才遵循此顺序。在查询中,您要传递一个Date值,这意味着它将仅查询 类型的* 值, 而不查询其他值(例如,值)。Date *null
Date
为了获得null值,您可以通过添加第二个来创建复合查询Where:
Where
Collection("products").Where("producedDate", "<", "2018-01-15").Where("producedDate", "==", null)