Я хочу запросить объекты из коллекции, где "equipmentOption" == equipmentOption || "equipmentOption" == -1.
После исследования этой проблемы я пришел к выводу, что это невозможно с Firestore Querys. Это правильно или есть способ сделать запрос?
Итак, мое решение состояло в том, чтобы иметь два отдельных запроса, подобных этому:
Task<QuerySnapshot> routinesWithEquipmentOption = doc.getReference().collection("Routines").whereEqualTo("equipmentOption", programm.getEquipmentOption()).get();
Task<QuerySnapshot> routinesWithoutEquipmentOption = doc.getReference().collection("Routines").whereEqualTo("equipmentOption", -1).get();
и как-то объединить этот запрос. Вот что я сделал:
Tasks.whenAllSuccess(routinesWithEquipmentOption, routinesWithoutEquipmentOption).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
@Override
public void onSuccess(List<Object> objects) {
}
});
В этом OnSuccessListner я получаю список объектов. Это смущает меня, какую информацию содержат эти объекты. Есть ли способ преобразовать их в DocumentSnapshot, чтобы я мог вызвать .toObject()
? Также кажется, что я ничего не получаю, потому что onSuccess никогда не вызывается.