Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Firebase检索一些数据并将其放在RecyclerView上_Java_Android_Firebase_Android Recyclerview - Fatal编程技术网

Java 从Firebase检索一些数据并将其放在RecyclerView上

Java 从Firebase检索一些数据并将其放在RecyclerView上,java,android,firebase,android-recyclerview,Java,Android,Firebase,Android Recyclerview,如何在RecyclerView中从Firebase检索Rute数据,其中Sofer是相等的用户名 这是我火力基地的一部分。我试着这样做,但出现了所有的数据 public void onStart() { super.onStart(); DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference ruteRef = rootRef.child(

如何在
RecyclerView
中从Firebase检索Rute数据,其中Sofer是相等的用户名

这是我火力基地的一部分。我试着这样做,但出现了所有的数据

public void onStart() {
    super.onStart();

    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference ruteRef = rootRef.child("Rute");
    assert user != null;
    Query query = ruteRef.orderByChild("Sofer").equalTo(user.getDisplayName());
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Model, ViewHolder>(Model.class, R.layout.card_layout, ViewHolder.class, mRef) {
                @Override
                protected void populateViewHolder(ViewHolder viewHolder, Model model, final int position) {

                    viewHolder.setDetails(getContext(), model.getTaraPlecare(), model.getTaraDestinatie(), model.getSofer(),
                            model.getCapTractor(), model.getRemorca(), model.getNumeleIncarcaturii(), model.getDataPlecare(),
                            model.getOrasPlecare(), model.getOrasDestinatie());
                    viewHolder.itemView.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            // Intent intent = new Intent(Fridge.this, Show.class);
                            //  startActivity(intent);
                        }
                    });
                }
            };

            RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(getActivity(), 1);
            mRecyclerView.setLayoutManager(mLayoutManager);
            mRecyclerView.setAdapter(firebaseRecyclerAdapter);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Toast.makeText(getContext(), "Eroare", Toast.LENGTH_LONG).show();
        }
    });

}
public void onStart(){
super.onStart();
DatabaseReference rootRef=FirebaseDatabase.getInstance().getReference();
数据库引用ruteRef=rootRef.child(“Rute”);
断言用户!=null;
Query Query=ruteRef.orderByChild(“Sofer”).equalTo(user.getDisplayName());
query.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
firebaseRecyclerAdapter=新的firebaseRecyclerAdapter(Model.class、R.layout.card_布局、ViewHolder.class、mRef){
@凌驾
受保护的void populateViewHolder(ViewHolder ViewHolder、模型模型、最终int位置){
viewHolder.setDetails(getContext()、model.getTaraPlecare()、model.getTaraDestinatie()、model.getSofer()、model,
model.getCapTractor()、model.getRemorca()、model.getNumeleIncarcaturii()、model.getDataPlecare()、model,
model.getOrasPlecare(),model.getOrasDestinatie());
viewHolder.itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//意向=新意向(冰箱、本、秀、类);
//星触觉(意向);
}
});
}
};
RecyclerView.LayoutManager mLayoutManager=新的GridLayoutManager(getActivity(),1);
mRecyclerView.setLayoutManager(mllayoutmanager);
mRecyclerView.setAdapter(firebaseRecyclerAdapter);
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
Toast.makeText(getContext(),“Eroare”,Toast.LENGTH_LONG.show();
}
});
}

我建议您将现有结构替换为:

Rute:
    [
        { "Username1": 
           //All your data related to Username
        },
        { "Username2": 
           //All your data related to Username
        },
        { "Username3": 
           //All your data related to Username
        }
    ]
以上结构将帮助你实现你想要的

如何在Sofer等于用户显示名的recyclerview中从firebase检索Rute数据

只需使用以下查询:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ruteRef = rootRef.child("Rute");
Query query = ruteRef.orderByChild("Sofer").equalTo("userDisplayName");
query.addListenerForSingleValueEvent(/* ... */);

是一种推荐的方法,您可以使用
FirebaseRecyclerAdapter
从Firebase实时数据库检索数据,并将其显示在
RecyclerView
中。CardView中也出现了所有子项,我编辑了问题并添加了启动代码,可能是我犯了错误。不,你不应该这样做。使用Firebase UI并将该查询传递给回答中解释的
FirebaseRecyclerOptions
对象,对吗?