首页 > 解决方案 > 试图通过 orderByChild() 通过电话订购,但它不起作用?

问题描述

在此处输入图像描述

我不知道为什么 orderByChild() 是 Firebase 数据库。

loadOrders(Common.currentUser.getPhone());
}

 private void loadOrders(final String phone) {

   FirebaseRecyclerOptions<Request> options;
   options = new FirebaseRecyclerOptions.Builder<Request>()
           .setQuery(requests, Request.class)
           .build();
   Log.e(TAG, "after options");


   adapter = new FirebaseRecyclerAdapter<Request, OrderViewHolder>(options) {
       @Override
       protected void onBindViewHolder(@NonNull OrderViewHolder holder, int position, @NonNull Request model) {
           requests.orderByValue().equalTo(phone);
           holder.txtOrderId.setText(adapter.getRef(position).getKey());
           holder.txtOrderStatus.setText(convertCodeToStatus(model.getStatus()));
           holder.txtOrderAddress.setText(model.getAddress());
           holder.txtOrderPhone.setText(model.getPhone());
           final Request clickItem = model;
       }

       @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);
       }
       };
   recyclerView.setAdapter(adapter);
   adapter.startListening();
   adapter.notifyDataSetChanged();

}

在这里,我正在尝试通过电话订购请求,但数据未订购,它显示了所有请求,我该怎么做?

标签: javaandroidfirebasefirebase-realtime-database

解决方案


听起来您正在寻找:

FirebaseRecyclerOptions<Request> options;
options = new FirebaseRecyclerOptions.Builder<Request>()
       .setQuery(requests.orderByChild("phone"), Request.class)
       .build();

您还需要删除requests.orderByValue().equalTo(phone),这是一个毫无意义的声明。


推荐阅读