假设我们在 people 集合中有一个“people”集合,我们有 person 对象
public class Person{
public String personId;
public String firstName;
public String lastName;
}
我想通过同时使用firstName和lastName以及startAt和endAt方法来搜索人员,如下所示
Query query = FirebaseFirestore.getInstance()
.collection("people").orderBy("firstName",
Query.Direction.ASCENDING).
orderBy("lastName", Query.Direction.ASCENDING).startAt(key).endAt(key + "\uf8ff");
FirestoreRecyclerOptions<Person> options = new FirestoreRecyclerOptions.Builder<Person>()
.setQuery(query, Person.class)
.build();
但我只能使用名字或姓氏,如何同时使用两者?
最佳答案
我不确定 startAt 和 endAt 是否适合您。这些用于分页,看起来这并不是您想要在这里做的事情。如果您只想通过一些常见的第一次和最后一次过滤所有人员,只需使用 where 子句执行普通查询来过滤这些名称并根据需要对它们进行排序:
Query query = FirebaseFirestore.getInstance()
.collection("people")
.whereEqualTo("lastName", yourLastName)
.whereEqualTo("firstName", yourFirstName)
.orderBy("lastName")
.orderBy("firstName")
关于java - 如何使用 startAt() 和 endAt 方法通过多个搜索键搜索 firestore 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60018018/