java - 如何使用 startAt() 和 endAt 方法通过多个搜索键搜索 firestore 集合

标签 java android google-cloud-firestore

假设我们在 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/

相关文章:

java - 如何阻止 Eclipse 在每次捕获异常时中断?

java - 如何使用.p12证书通过FTPClient连接到FTP?

android - 你能在Android 5.0中唯一标识一个BLE MAC地址吗?

安卓 : Scrolling in Grid layout?

google-cloud-firestore - GCP Firestore API 不适用于 Cloud Datastore 项目

javascript - 如何从 firebase 中的嵌套文档中删除数组项?

java - 运行 JavaFX 容器类后如何立即隐藏 GUI 中的元素?

java - Maven:从 JAR 中排除 "META-INF/maven"文件夹

android - Cordova 平台添加 android 给出错误 : "Error: The provided path is not an Android project."

javascript - 相当于 Firestore 中的 .push?