首页 > 解决方案 > 如何以编程方式形成 Firestore 查询?

问题描述

我正在尝试根据用户输入动态/以编程方式进行 firestore 查询。问题是输入在编程时可能是未知的可变数量。我想以这样一种方式创建查询,即如果用户输入一个输入或多个搜索词,它将运行。

我的示例代码在 Kotlin for Android 中:

val searchFilters = listOf(
    "searchField1",
    "searchField2",
    "searchField3"
)
var refQuery= db.collection("myCollection")
for(filterName in searchFilters) {
  refQuery.whereEqualTo(filterName, true)
}
refQuery.get()

上面的代码似乎并没有实际添加任何过滤器选项,而是返回了整个集合。动态或以编程方式创建 Firestore 查询的正确方法是什么?

编辑:可以在此处找到答案,但我将把它留在这里供其他人搜索参考,因为它被询问的方式不同,足以保证它。

必须将其重新分配给自己:

for(filterName in searchFilters) {
  refQuery = refQuery.whereEqualTo(filterName, true)
}

标签: firebasekotlingoogle-cloud-firestore

解决方案


推荐阅读