У меня есть Collection в Cloud Firestore, в котором есть определенное количество элементов, назовем его Collection «X». Это количество предметов будет постоянно меняться. В любой момент времени я хочу прослушать количество элементов в этом Collection и создать несколько вызовов whereEqualto() для объекта Query, основанного на другой «Коллекции», назовем ее «Y»:
Query queryStore = FirebaseFirestore.getInstance()
.collection("Y")
.whereEqualTo(USER_ID_LABEL, "item 1 from X")
.whereEqualTo(USER_ID_LABEL, "item 2 from X")
.whereEqualTo(USER_ID_LABEL, "item 3 from X");
//Could be more than 3, could be less than 3, constantly changing
По сути, количество whereEqualTo() будет динамическим.
Возможен ли этот тип запроса?




Да. гдеEqualTo () возвращает объект Запрос, который можно использовать для создания окончательного запроса, который вам нужен. Нет никакого обязательства связывать все методы сразу, как вы продемонстрировали в своем вопросе. То, что вы написали, эквивалентно этому:
Query queryStore = FirebaseFirestore.getInstance().collection("Y")
queryStore = queryStore.whereEqualTo(USER_ID_LABEL, "item 1 from X");
queryStore = queryStore.whereEqualTo(USER_ID_LABEL, "item 2 from X");
queryStore = queryStore.whereEqualTo(USER_ID_LABEL, "item 3 from X");
Спасибо - есть ли способ очистить / сбросить запрос?
Нет, запрос - это неизменяемый объект. Прочтите внимательно javadoc (выделив мой): «Создает и возвращает запрос новый с дополнительный фильтр ..». Если вы хотите начать заново, создайте новый запрос с того места, где вы хотите начать построение.
Я действительно обновил свой код. По какой-то причине, которую я не могу понять, RecyclerView не заполняет данные, поскольку "Отслеживание" изменено. Я не уверен, почему ...
Вы полностью переписали свой вопрос, что сделало недействительным мой ответ на первый вопрос. Если у вас есть дополнительный вопрос, вам следует задать новый вопрос, а не переписывать свой первый вопрос.
Отметил - я вернулся назад
Понятно, значит, когда я передаю
queryStoreв свойFirebaseRecyclerOptions, он будет учитывать все условияwhere, а не только последнее? Другими словами, это кумулятивно?