以下是Cloud Firestore列表查询中的一个示例
citiesRef.where("state", ">=", "CA").where("state", "<=", "IN")
这是什么意思?
这是我查询子字符串的方法吗?例如, 我有一组用户,我的所有用户文档都有first_name和last_name。现在作为用户,我试图通过键入名称的一部分并搜索来搜索其他人。我应该能够编写一个查询来让所有用户的名字都包含该字符串。我如何在Firestore中做到这一点?
答案 0 :(得分:2)
[Googler here] 要回答您的第一个问题,state <= "IN"
是对state
属性值小于或等于该值的所有文档的查询"IN"
。因此,如果状态为"IM"
,那将是真实的,但如果是"IO"
或"IP"
,那么这些状态将在后面按字典顺序排列。
"IN"
的使用可能在这里令人困惑,它意味着是印第安纳州的缩写,但它在许多其他数据库系统中也是一个保留字。
要回答第二个问题,Cloud Firestore不支持任何本机“包含”,操作或其他常见的字符串查询,如“startsWith”,“endsWith”,“like”等。原因是所有Cloud Firestore查询必须点击一个索引,现在我们不会以一种使这些查询更快的方式索引文本字段。
目前我们建议您使用像Algolia这样的第三方搜索服务提供商,我们在此提供一些指导: https://firebase.google.com/docs/firestore/solutions/search