firebase - 我无法列出已添加到购物车的食物
问题描述
我可以添加食物、订单地址和电话号码信息,并在 Firebase 的请求/ID 下查看所有这些信息。但是,当我单击主菜单中的导航抽屉以及订单和购物车按钮时,我无法列出已添加到购物车中的食物。查询部分似乎有问题。请帮我做什么
订单状态.java
public class OrderStatus extends AppCompatActivity {
RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
FirebaseDatabase database;
DatabaseReference requests;
FirebaseRecyclerAdapter<Request, OrderViewHolder> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order_status);
//firebase
database = FirebaseDatabase.getInstance();
requests = database.getReference("Request");
recyclerView = findViewById(R.id.listOrders);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
loadOrders(user.getEmail().toString());
}
private void loadOrders(String email) {
Query query = FirebaseDatabase.getInstance()
.getReference("Request")
.orderByChild("email")
.startAt(email.toString()).equalTo(true,email)
.limitToLast(50);
FirebaseRecyclerOptions<Request> options = new FirebaseRecyclerOptions.Builder<Request>().setQuery(query, Request.class).build();
adapter = new FirebaseRecyclerAdapter<Request, OrderViewHolder>(options) {
@NonNull
@Override
public OrderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.order_layout, parent, false);
return new OrderViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull OrderViewHolder viewHolder, int position, @NonNull Request model) {
viewHolder.txtOrderID.setText(adapter.getRef(position).getKey());
viewHolder.txtOrderStatus.setText(convertCarttoStatus(model.getStatus()));
viewHolder.txtOrderAddress.setText(model.getAddress());
viewHolder.txtOrderPhone.setText(model.getPhone());
}
};
recyclerView.setAdapter(adapter);
}
private String convertCarttoStatus(String status) {
if (status == "0")
return "PLaced";
else if (status == "1")
return "On My Way";
else
return "Shipped";
}
解决方案
这行得通。如果你需要,你可以使用
public class OrderStatus extends AppCompatActivity {
RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
FirebaseDatabase database;
DatabaseReference requests;
FirebaseRecyclerAdapter<Request, OrderViewHolder> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order_status);
//firebase
database = FirebaseDatabase.getInstance();
requests = database.getReference("Request");
recyclerView = findViewById(R.id.listOrders);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
phoneNumber = getIntent().getStringExtra("phoneNumber");
loadOrders(phoneNumber);
}
private void loadOrders(String email) {
Query query = FirebaseDatabase.getInstance()
.getReference("Request")
.limitToLast(50);
FirebaseRecyclerOptions<Request> options = new FirebaseRecyclerOptions.Builder<Request>().setQuery(query, Request.class).build();
adapter = new FirebaseRecyclerAdapter<Request, OrderViewHolder>(options) {
@NonNull
@Override
public OrderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.order_layout, parent, false);
return new OrderViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull OrderViewHolder viewHolder, int position, @NonNull Request model) {
viewHolder.txtOrderID.setText(adapter.getRef(position).getKey());
viewHolder.txtOrderStatus.setText(convertCarttoStatus(model.getStatus()));
viewHolder.txtOrderAddress.setText(model.getAddress());
viewHolder.txtOrderPhone.setText(model.getPhone());
}
};
recyclerView.setAdapter(adapter);
}
protected void onStart() {
super.onStart();
adapter.startListening();
}
protected void onStop() {
super.onStop();
adapter.stopListening();
}
private String convertCarttoStatus(String status) {
if (status == "0")
return "PLaced";
else if (status == "1")
return "On My Way";
else
return "Shipped";
}
推荐阅读
- ruby-on-rails - 在注册页面和登录后分别设置语言环境
- javascript - 弹出并将图像移动到另一个位置
- r - 在匿名函数内的公式中使用 quosures
- java - GET 命令中冒号 %3A 的 Android URL 编码
- javascript - node fs 是否支持使用 globbing 模式复制文件?
- ms-access - MS Access:带有不等式运算符的左外自连接
- content-security-policy - 为什么一个简单的按钮标签会违反 CSP?
- reactjs - Reactjs+Flow:onChange 抛出错误
- javascript - React:当父组件重新渲染时,子组件是否总是重新渲染?
- c - 用popen在C中读取arecord的输出