Поскольку в Firestore нет логического оператора OR
, я пытаюсь объединить 2 отдельных запроса локально.
Теперь мне интересно, как я могу поддерживать правильный порядок результатов. Когда я выполняю 2 запроса независимо, я не могу указать результаты отдельно (по крайней мере, не порядок, в котором я получаю результаты из Firestore с помощью метода orderBy
).
Моя идея заключалась в том, чтобы поместить второй запрос внутрь onSuccessListener
первого запроса. Это плохая идея с точки зрения производительности?
public void loadNotes(View v) {
collectionRef.whereLessThan("priority", 2)
.orderBy("priority")
.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
Note note = documentSnapshot.toObject(Note.class);
//adding the results to a List
}
collectionRef.whereGreaterThan("priority", 2)
.orderBy("priority")
.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
Note note = documentSnapshot.toObject(Note.class);
//adding the results to a List
}
}
});
}
});
}