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