Я пытаюсь получить определенные данные из базы данных Firebase в реальном времени. Я знаю, что сложные запросы к базе данных firebase невозможны.
Вот снимок моей базы данных, я хочу сначала заказать мою базу данных со счетчиком, поэтому я использовал запрос .orderByChild(count) и передал его параметру Recycler. ОК, это нормально. Но теперь, кроме того, я хочу, чтобы данные отображались, если только если рекомендация = рекомендуется. то есть двойной запрос.
Я думаю, что мы не можем использовать двойной запрос в базе данных в реальном времени, поэтому я сделал следующее....
/*
condition =
recyclerView = Linearlayout manager
setQuery = orderbychild count
*/
//actual logic for hiding non required data
if (model.getRecommendation().equals("recommended")) {
holder.recommendationLayout.setVisibility(View.VISIBLE);
}
else {
holder.hideView.setVisibility(View.GONE);
holder.hideView.getLayoutParams().height = 0;
holder.hideView.getLayoutParams().width = 0;
ViewGroup.MarginLayoutParams layoutParams =
(ViewGroup.MarginLayoutParams) holder.hideView.getLayoutParams();
layoutParams.setMargins(0, 0, 0, 0);
holder.hideView.requestLayout();
}
Но когда я меняю менеджер компоновки на GridLayoutManager
К сожалению, он оставляет пробелы там, где тег продукта не рекомендуется.
Итак, мой вопрос: как мы можем избежать этого пробела или есть ли какой-либо метод, которым я могу отсортировать свою базу данных и передать двойной запрос или что-то еще?