Я хочу объединить две разные задачи в одну для выполнения запроса 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:
Чего я хочу добиться:
Я хочу получить, где 'A' равно 'a' или 'B' равно 'b' в одном запросе, а затем отсортировать этот запрос по дате.
Например;
У меня два запроса. Оба они дают список различных объектов DocumentReference в методе onSuccess. Оба списка отсортированы по дате, я хочу получить один список, который содержит все ссылки, содержащиеся в этих двух списках, отсортированные по дате.