我在Firestore中收集了大量带有随机ID的文档,每个文档都有两个字段,一个名称和一个描述。我想让我的应用程序允许用户输入一系列字符,然后向他呈现所有包含字符序列的文档,比方说名称字段。使用Firebase及其查询是否可行,如果可行,您能给我一个Kotlin或Java的代码示例吗?我知道有一些方法,如hasChild()
或child(“child name”).exists()
,但由于我还不知道用户正在查找哪个文档,如果没有弄错,我就不能使用它们。
例如,如果我有3个文档的集合,它们有以下名称(“Mike”、“Michael”、“Dave”),并且用户输入了“MI”,我希望能够检索到名称为“Mike”和“Michael”的文档。
如果要获取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)
}
这里使用的\uf7ff
值是存在的最后一个Unicode字符,因此:
名称
值对所有文档进行排序mi
mi
有关这方面的更多内容,请阅读有关查询数据的Firebase文档。
我还建议检查一下这些相关问题:
问题内容: 我需要检查一个字符串是否包含汉字。搜索之后,我发现我必须在这种模式下查看正则表达式,但是我无法使正则表达式正常工作。 任何人都经历过这种情况?正则表达式正确吗? 问题答案: 作为讨论在这里,在Java 7(即正则表达式编译器符合要求RL1.2属性从UTS#18 Unicode的正则表达式 ),你可以使用下面的正则表达式匹配中国(当然,CJK)字符: 可以简单地理解为
问题内容: 通常我希望有一种方法,但是似乎没有。 有什么合理的方法来检查? 问题答案: ECMAScript 6引入了: 但是不支持。在ECMAScript 5或更旧的环境中,使用,当找不到子字符串时,它将返回-1:
通常我希望有方法,但似乎没有。 对此有什么合理的检查方法?
问题内容: 我有一个购物车,在下拉菜单中显示产品选项,如果它们选择“是”,我想使页面上的其他一些字段可见。 问题是购物车的文本中还包含价格修饰符,每个产品的价格修饰符可能不同。以下代码有效: 但是我宁愿使用这样的东西,它不起作用: 我只想在所选选项包含单词“是”的情况下执行操作,并且会忽略价格修饰符。 问题答案: 像这样: …或者您可以使用波浪号运算符: 之所以有效,是因为如果根本找不到该字符串,
问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:
问题内容: 我正在尝试查看文件是否包含发送到页面的字符串。我不确定这段代码有什么问题: 问题答案: 简单得多: 回应有关内存使用的评论: