Вы создаете адаптер на Requests
.Это означает, что представление рециркулятора покажет список запросов : по одной строке для каждого запроса.Но вы создали класс данных Food
и FoodViewHolder
, поэтому кажется, что вы действительно хотите отобразить список продуктов .
Чтобы отобразить список продуктов в вашем представлении переработчика, у вас должен быть список продуктов в вашей базе данных.Например, вы можете показать продукты для первого запроса, определив DatabaseReference
для этого запроса и затем отобразив это в адаптере:
DatabaseReference requestsRef = FirebaseDatabase.getInstance().getReference().child("Requests");
Query firstRequestQuery = requestsRef.orderByKey().limitToFirst(1);
firstRequestQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot requestSnapshot: dataSnapshot.getChildren()) {
FirebaseRecyclerAdapter<Food, FoodViewHolder> adapter = new FirebaseRecyclerAdapter<Food, FoodViewHolder>(
Food.class,
R.layout.individual_row,
FoodViewHolder.class,
requestSnapshot.getRef().child("foods")
) {
@Override
protected void populateViewHolder(FoodViewHolder viewHolder, Food model, int position) {
viewHolder.setProductName(model.getProductName());
viewHolder.setQuantity(model.getQuantity());
}
};
recyclerView.setAdapter(adapter);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
}
Хотя могут быть некоторые проблемы с кодом, он демонстрируеткак показать продукты первого запроса в представлении переработчика.Ключ requestSnapshot.getRef().child("foods")
, который гарантирует, что адаптер загружает продукты первого запроса.