我在 Firestore 数据库中有一个用户列表及其名称。我想要实现的是让用户能够搜索和找到其他用户。我的问题是:
Query query = db.collection("users").whereEqualTo("name", searchTerm);
FirestoreRecyclerOptions<UserObject> response = new FirestoreRecyclerOptions.Builder<UserObject>()
.setQuery(query, UserObject.class)
.build();
在上面的代码中,只有当我准确地写下他们的名字和姓氏时,我才能找到用户。但我想要的是获得具有相似姓名或姓氏的用户。而且,用户的姓氏和名字存储在一个字符串变量中。就像在 facebook 中,如果你搜索一些名字,它也会显示相似的名字。是否有使用 firestore 实现该目标的好方法?
最佳答案
Cloud Firestore doesn't support native indexing or search for text fields in documents. Additionally, downloading an entire collection to search for fields client-side isn't practical.
所以我强烈建议您不要为了创建搜索而下载整个合集,这是不值得的。但为了稍微好一点的搜索,我建议您使用以下查询:
Query query = db.collection("users").startAt(searchText).endAt(searchText+ "\uf8ff");
如果此查询不是您要搜索的内容,我建议您使用 Algolia搜索,这也是 Firebase 推荐的。我还建议您查看此 video .
关于java - Firestore : Query names that match or similar to the searched term,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49471466/