Firebase Firestore没有OR或差异逻辑运算符或whereNotEqual

时间:2019-09-19 16:08:26

标签: android firebase google-cloud-firestore

我有一个文档集合,每个文档都有一个称为“位置”的属性,该属性可以采用以下可能的字符串值之一:A,B,C,D,E ...(来自控制对象的ENUM状态机)

如何在Firestore中创建查询以返回其“位置”属性的值为“ A”或“ D”的文档?

在Firestore文档中,可以理解没有实现差异逻辑运算符。复合查询仅在单个ATTRIBUTE值上满足“ AND”条件。

在这种特殊情况下,我无法更改属性类型,因为如果将来使用数字范围,将来可能会添加其他元素并导致需求问题。

我想到进行两个查询并合并结果。但是使用分页和复杂的查询(无效),这样做太可怕了。除了运行两个查询外,将来我需要调整的条件越多,代码维护和查询就越多!对吧?

有什么办法可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

逻辑或查询。在这种情况下,您应该为每个OR条件创建一个单独的查询,然后将查询结果合并到您的应用中。

来源:https://firebase.google.com/docs/firestore/query-data/queries#compound_queries