Как я могу отсортировать два объединенных запроса Firestore? - PullRequest
0 голосов
/ 31 января 2020

Я хочу объединить две разные задачи в одну для выполнения запроса OR, а затем отсортировать его в соответствии с их свойствами (т. Е. Отметкой времени). Метод Tasks.whenAllSuccess() выполняет слияние, но он дает список querySnapshots, который включает снимок для каждой Задачи, поэтому я не могу отсортировать их все среди них. Могу ли я объединить эти снимки или использовать другой метод для этого?

Я уже рассмотрел этот вопрос по моему вопросу: Firestore - Объединение двух запросов локально

Здесь вот что я попробовал:

    CollectionReference allMessages = FirebaseFirestore.getInstance()
            .collection("users").document(userId).collection("messages");
    Task task1 = allMessages.whereEqualTo("A", "a").get();
    Task task2 = allMessages.whereEqualTo("B", "b").get();

    Task<List<QuerySnapshot>> allTasks = Tasks.whenAllSuccess(task1, task2);
    allTasks.addOnSuccessListener(new OnSuccessListener<List<QuerySnapshot>>() {
        @Override
        public void onSuccess(List<QuerySnapshot> querySnapshots) {
            // querySnapshots.size() returns 2, for task1 and task2.
        }
    });

Скриншот из моего Firestore:

firestore

Чего я хочу добиться:

Я хочу получить, где 'A' равно 'a' или 'B' равно 'b' в одном запросе, а затем отсортировать этот запрос по дате.

Например;

У меня два запроса. Оба они дают список различных объектов DocumentReference в методе onSuccess. Оба списка отсортированы по дате, я хочу получить один список, который содержит все ссылки, содержащиеся в этих двух списках, отсортированные по дате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...