Firestore объединяет 2 запроса и запроса с OR - PullRequest
0 голосов
/ 02 мая 2018

Я хочу запросить объекты из коллекции, где "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 никогда не вызывается.

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