我可以在同一字段中两次使用WhereEqualTo吗?

时间:2020-01-03 06:27:03

标签: android firebase google-cloud-firestore

我想按两个数据对BUCKET_1_KEY字段中的数据进行排序,但在我的情况下不起作用。有可能吗?

db.collection(XPERT_MASTER_KEY)
                .document(xpertId)
                .collection(RESPONSES_KEY)
                .whereEqualTo(BUCKET_1_KEY, "exp")
                .whereEqualTo(BUCKET_1_KEY, "option")

1 个答案:

答案 0 :(得分:3)

Firestore查询中的条件在逻辑上相互进行“与”运算。因此,在同一字段的单个查询中具有两个相等条件是没有意义的。字段值不能同时等于两个不同的字符串。

如果您要实施逻辑OR查询,并尝试获取BUCKET_1_KEY等于“ exp”的所有文档 OR BUCKET_1_KEY等于“ options”,则应使用IN查询代替。请read the documentation about IN queries。如果您尝试对IN查询执行逻辑或,则如下所示:

db.collection(XPERT_MASTER_KEY)
                .document(xpertId)
                .collection(RESPONSES_KEY)
                .whereIn(BUCKET_1_KEY, Arrays.asList("exp", "option"))