检查 Firestore 中的任何文档是否包含子字符串

Ste*_*ail 2 android firebase google-cloud-firestore

我在 Firestore 中收集了大量具有随机 ID 的文档,每个文档都有两个字段:名称和描述。我希望我的应用程序允许用户输入一系列字符,然后向他展示包含该字符序列(例如名称字段)的所有文档。使用 Firebase 及其查询是否可行?如果可以,您能给我一个 Kotlin 或 Java 代码示例吗?我知道有一些方法,例如hasChild()child("child name").exists(),但由于我还不知道用户正在查找哪个文档,如果我没有弄错的话,我无法使用它们。

例如,如果我有 3 个具有以下名称(“mike”、“michael”、“dave”)的文档的集合,并且用户输入“mi”,我希望能够检索其名称的文档是“迈克”和“迈克尔”。

Fra*_*len 9

如果您想获取该name字段以 开头的所有文档mi,您可以使用以下命令:

db.collection("users")
  .whereGreaterThanOrEqualTo("name", "mi")
  .whereLessThanOrEqualTo("name", "mi\uF7FF")
  .get()
  .addOnSuccessListener { documents ->
    for (document in documents) {
      Log.d(TAG, "${document.id} => ${document.data}")
    }
  }
    .addOnFailureListener { exception ->
        Log.w(TAG, "Error getting documents: ", exception)
    }
Run Code Online (Sandbox Code Playgroud)

这里使用的值\uF7FF是最后一个存在的 Unicode 字符,因此:

  1. 按其name价值对所有文档进行排序
  2. 查找第一个以以下内容开头的文档mi
  3. 返回所有文档,直到到达大于的文档mi

有关这方面的更多信息,请阅读有关查询数据的Firebase 文档。

我还建议检查这些相关问题:


归档时间:

查看次数:

7736 次

最近记录:

4 年,11 月 前