Как искать в коллекциях firestore с помощью нескольких ключей поиска, используя методы startAt () и endAt - PullRequest
0 голосов
/ 01 февраля 2020

Допустим, у нас есть коллекция "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();

, но я могу использовать только firstName или lastName, как я могу использовать оба одновременно?

1 Ответ

0 голосов
/ 01 февраля 2020

Я не уверен, что startAt и endAt - это то, что вам нужно. Они используются для нумерации страниц, и это не похоже на то, что вы пытаетесь сделать здесь. Если вы просто хотите отфильтровать всех людей по некоторым общим первым и последним разам, просто выполните обычный запрос с предложениями where, чтобы отфильтровать эти имена и упорядочить их по мере необходимости:

Query query = FirebaseFirestore.getInstance()
    .collection("people")
    .whereEqualTo("lastName", yourLastName)
    .whereEqualTo("firstName", yourFirstName)
    .orderBy("lastName")
    .orderBy("firstName")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...