gpt4 book ai didi

android - 在 Recycler View 中显示来自 firebase 的特定数据

转载 作者:行者123 更新时间:2023-11-29 01:03:18 24 4
gpt4 key购买 nike

我的一个 Activity 中有一个选项卡布局。不同的选项卡扩展不同的 fragment 。我必须在 cardView inside fragment 中显示数据。CardView 将包含 Bills 中单个 child 的所有数据。

这是我的 Activity

enter image description here

这是我的数据库的样子:
enter image description here

现在的问题不是显示Bills 节点内所有子节点的数据,而是我需要用两件事1 来过滤它们。 userId2.账单类型。现在,如果 userId 与当前用户的唯一键 mUser.getUid() 匹配,那么它应该检查 billType 假设,如果 billType 是Electronics 然后它应该在 electronics 选项卡内可见。

这是我的 viewElectronics.java fragment View 的代码

public class viewElectronics extends Fragment {

private RecyclerView mReceipt;
private FirebaseAuth mAuth;
private FirebaseUser mUser;
private DatabaseReference mRef;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.electronics_layout, container, false);
mAuth = FirebaseAuth.getInstance();
mUser = mAuth.getCurrentUser();
mRef = FirebaseDatabase.getInstance().getReference().child("Bills");
mReceipt = (RecyclerView) rootView.findViewById(R.id.electronicsRecycler);
mReceipt.setLayoutManager(new LinearLayoutManager(getContext()));

FirebaseRecyclerAdapter<DataModel, ReceiptViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<DataModel, ReceiptViewHolder>
(DataModel.class, R.layout.reciept_row, ReceiptViewHolder.class, mRef){
@Override
protected void populateViewHolder(ReceiptViewHolder viewHolder, DataModel model, int position) {
viewHolder.setBillNo("Bill No : " + model.getBillNo());
viewHolder.setStoreName("Store Name : " + model.getCompany());
viewHolder.setDate("Date : " + model.getDate());
viewHolder.setTime("Time : " + model.getTime());
viewHolder.setBillTotal("Total : " + model.getTotal());
}
};

mReceipt.setAdapter(firebaseRecyclerAdapter);
return rootView;

}

}

假设只有最后一个节点有 billType: Electronics,那么 Electronics 选项卡应该包含最后一张卡片。我需要在此代码中进行哪些更改。提前致谢。感谢您的帮助。

最佳答案

您需要过滤可以使用 .equalto 轻松完成的 bills 节点

在数据库引用的 firebase 回收器 View 中:

if( userid.equalto(mUser.getUid())){
mRef.orderbychild("billtype").equalto("Electronics")//whatever Category of fragment
else{(adapter.getposition(position).getKey()).orderbychild("billType")}

而不是使用 mRef 作为您的数据库引用,您可以通过说出您需要显示的类别来进行过滤(注意:这仅适用于您在每个 fragment 中复制代码的情况)

 mRef.orderbychild("billtype").equalto("Electronics")

现在,另一方面,当userid不匹配时,则根据账单类型显示。

关于android - 在 Recycler View 中显示来自 firebase 的特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49393837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com