我有一个用户列表,其姓名位于 Firestore 数据库中。我想要实现的是让用户能够搜索和找到其他用户。我的问题是:
Query query = db.collection("users").whereEqualTo("name", searchTerm);
FirestoreRecyclerOptions<UserObject> response = new FirestoreRecyclerOptions.Builder<UserObject>()
.setQuery(query, UserObject.class)
.build();
在上面的代码中,只有当我完全正确地写出他们的名字和姓氏时,我才能找到用户。但我想要的是获得具有相似姓名或姓氏的用户。此外,用户的姓氏和名字存储在一个字符串变量中。就像在 Facebook 中一样,如果你搜索一些名字,它也会显示相似的名字。有没有一个好的方法可以用 firestore 来实现这一点?
As per 官方文档:
Cloud Firestore 不支持本机索引或搜索文档中的文本字段。此外,下载整个集合来搜索客户端字段是不切实际的。
因此,我强烈建议您不要为了创建搜索而下载整个集合,这是不值得的。但为了获得更好的搜索效果,我建议您使用以下查询:
Query query = db.collection("users").startAt(searchText).endAt(searchText+ "\uf8ff");
如果此查询不是您要搜索的内容,我建议您使用Algolia搜索,Firebase 也推荐使用该搜索。我也推荐你看看这个video.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)