Я реализую свое маленькое приложение.Сегодня у меня проблемы с получением данных из моей Firebase.
Вот моя структура Firebase:
![enter image description here](https://i.stack.imgur.com/HIJiM.png)
Это модальный запрос:
public class Request {
// private String phone, name, address, total, status;
private String phone, name, address, status;
private int total;
private List<Order> foods;
public Request() {
}
public Request(String phone, String name, String address, int total, List<Order> foods) {
this.phone = phone;
this.name = name;
this.address = address;
this.total = total;
this.foods = foods;
this.status = "0"; //Default 0. 0: place, 1: shipping, 2: shipped
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public List<Order> getFoods() {
return foods;
}
public void setFoods(List<Order> foods) {
this.foods = foods;
}
}
Я получил данные заказа, перейдя в «PhoneNumber» и получив данные «ID заказа» следующим образом:
private FirebaseRecyclerAdapter<Request, OrderViewHolder> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order_status);
//Firebase:
FirebaseDatabase database = FirebaseDatabase.getInstance();
requests = database.getReference("Requests");
//init:
recyclerView = (RecyclerView) findViewById(R.id.recycler_orderview);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
loadOrders(Common.currentUser.getPhone());
//Common.currentUser.getPhone() This is PhoneNumber current
}
private void loadOrders(final String phone) {
adapter = new FirebaseRecyclerAdapter<Request, OrderViewHolder>(
Request.class,
R.layout.order_item,
OrderViewHolder.class,
requests.child(phone) // I have access to "PhoneNumber"
) {
@Override
protected void populateViewHolder(OrderViewHolder viewHolder, Request model, int position) {
viewHolder.txtOrderId.setText(adapter.getRef(position).getKey());
viewHolder.txtOrderStatus.setText(convertCodeToStatus(model.getStatus()));
viewHolder.txtOrderPhone.setText(model.getPhone());
viewHolder.txtOrderAddress.setText(model.getAddress());
viewHolder.txtOrderTotal.setText(String.valueOf(model.getTotal()));
viewHolder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
// Get CategoryID and send Activity Foods List:
Intent moveToOrderDetails = new Intent(OrderStatusActivity.this, OrderDetailsActivity.class);
moveToOrderDetails.putExtra("KeyOrder", adapter.getRef(position).getKey());
startActivity(moveToOrderDetails);
}
});
}
};
adapter.notifyDataSetChanged();
recyclerView.setAdapter(adapter);
}
И это мой Apdapter:
public class OrderViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnCreateContextMenuListener {
public TextView txtOrderId, txtOrderStatus, txtOrderPhone, txtOrderAddress, txtOrderTotal;
private ItemClickListener itemClickListener;
public OrderViewHolder(View itemView) {
super(itemView);
txtOrderId = (TextView) itemView.findViewById(R.id.order_id);
txtOrderStatus = (TextView) itemView.findViewById(R.id.order_status);
txtOrderPhone = (TextView) itemView.findViewById(R.id.order_phone);
txtOrderAddress = (TextView) itemView.findViewById(R.id.order_address);
txtOrderTotal = (TextView) itemView.findViewById(R.id.order_total);
itemView.setOnClickListener(this);
itemView.setOnCreateContextMenuListener(this);
}
public void setItemClickListener(ItemClickListener itemClickListener) {
this.itemClickListener = itemClickListener;
}
@Override
public void onClick(View view) {
itemClickListener.onClick(view,getAdapterPosition(),false);
}
@Override
public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) {
contextMenu.setHeaderTitle("Select the action");
contextMenu.add(0, 0, getAdapterPosition(), Common.UPDATE);
contextMenu.add(0, 1, getAdapterPosition(), Common.DELETE);
}
}
И теперь у меня возникают проблемы с выяснением того, как получить данные обо всех заказах, не переходя на «Номер телефона».Я пытался думать и выполнять, но не смог.
Это демонстрационное изображение о заказе:
![enter image description here](https://i.stack.imgur.com/xiFUz.png)