В настоящее время я занимаюсь разработкой приложения, в котором пользователи могут добавлять избранные элементы, а затем просматривать их в различных действиях.При разработке я застрял в последней части, где приложение отображает любимые предметы.Принимая во внимание эту структуру данных:
![JSON Database structure](https://i.stack.imgur.com/viE1M.png)
Приведенный ниже код показывает, как я использую FirebaseRecyclerAdapter.Прежде всего, запрос работает как задумано, он возвращает один объект.Мой вопрос заключается в том, как реализовать это таким образом, чтобы показать не только один любимый элемент, но и все их.(Элементы находятся в разных категориях). Например, что-то вроде этого, который отправит новый запрос и добавит новый элемент в адаптер:
for(int i=0; i<itemList.size(); i++) {
Query listRef = FirebaseDatabase.getInstance().getReference("Items").child("Category").child(itemList.get(i)).orderByChild("id").equalTo(itemList.get(i++)).limitToFirst(10);
//rest of the code
}
private void showData(){
/*
itemList is an array that has on:
index 0 category
index 1 item_id
index 2 category
index 3 item_id
and so on from Users/Likes
*/
Query listRef = FirebaseDatabase.getInstance().getReference("Items").child("Category").child(itemList.get(0)).orderByChild("id").equalTo(itemList.get(1)).limitToFirst(10);
options = new FirebaseRecyclerOptions.Builder<Model>().setQuery(listRef,Model.class).build();
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Model, ViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull Model model) {
holder.setDetails(getApplicationContext(), model.getTitle(), model.getDescription(), model.getImage(), model.getRating(), model.getViews(), model.getId(), model.getLikes());
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.row, parent, false);
ViewHolder viewHolder = new ViewHolder(itemView);
viewHolder.setOnClickListener(new ViewHolder.ClickListener() {
@Override
public void onItemClick(View view, int position) {
//get Data from firebase at the position clicked
String mTitle = getItem(position).getTitle();
String mDesc = getItem(position).getDescription();
String mImage = getItem(position).getImage();
String mRating = getItem(position).getRating();
String mViews = getItem(position).getViews();
String mItem_id = getItem(position).getId();
String mLikes = getItem(position).getLikes();
}
@Override
public void onItemLongClick(View view, int position) {
}
});
return viewHolder;
}
};
mRecyclerView.setLayoutManager(mLayoutManager);
firebaseRecyclerAdapter.startListening();
//set adapter to firebase recycler view
mRecyclerView.setAdapter(firebaseRecyclerAdapter);
}