我的一个活动中有一个标签布局。不同的标签扩展不同的片段我必须在 cardView内部片段中显示数据。 CardView将包含 Bills 内单个孩子的所有数据。
这是我的活动
现在的问题不是显示 Bills 节点内所有孩子的数据,而是需要用两个 1来过滤它们。 userId 和 2。 billType 即可。现在,如果 userId 与当前用户的唯一键 mUser.getUid()匹配,则应检查 billType ,如果billType为那么电子产品应该在电子产品标签中可见。
这是viewElectronics.java
的片段视图的代码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标签应包含最后一张卡。我在此代码中需要进行哪些更改。 提前致谢。任何帮助表示赞赏。
答案 0 :(得分:1)
您需要过滤您的bills节点,这可以轻松地通过.equalto
完成在您的Firebase回收器视图中的数据库参考中:
require("vendor/autoload.php");
use PHPHtmlParser\Dom;
$html = new Dom;
$url = https://www.example.com;
$html->loadFromFile($url);
// I need to do this:
$css = "<style>#custom{css:code;}.goes{over:here;}</style>"
$html->find("head")->append($css);
您可以通过说出您需要显示的类别来过滤(而不是使用mRef作为数据库引用)(注意:仅当您在每个片段中复制代码时才适用)
if( userid.equalto(mUser.getUid())){
mRef.orderbychild("billtype").equalto("Electronics")//whatever Category of fragment
else{(adapter.getposition(position).getKey()).orderbychild("billType")}
现在,另一方面,如果用户名不匹配,则根据帐单类型显示。