【发布时间】:2020-10-15 15:16:33
【问题描述】:
我正在尝试从我的 firebase 数据库中检索组。在组内部我正在尝试从内部检索组数据列表和所有节点及其数据。我目前只创建了 1 个组,但在我的主页上我是无法检索数据。我没有收到任何错误,但它都显示为 null 并且我的文本视图为空白。
我的主要课程
public class Homepage extends Fragment {
private RecyclerView mRecyclerView;
private DatabaseReference ref;
private FirebaseDatabase database;
private MyAdapter myAdapter;
private List<model> list;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_homepage, container, false);
FloatingActionButton floatingActionButton = v.findViewById(R.id.floatingActionButton);
mRecyclerView = v.findViewById(R.id.recyclerview);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
database = FirebaseDatabase.getInstance();
ref = database.getReference().child("Chatrooms").child("chatroomdata");
list = new ArrayList<>();
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
for (DataSnapshot npsnapshot : snapshot.getChildren()) {
model l = npsnapshot.getValue(model.class);
list.add(l);
}
myAdapter = new MyAdapter(list);
mRecyclerView.setAdapter(myAdapter);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(),createchatroom.class));
}
});
return v;
}
我的适配器和查看器
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
private List<model> list;
public MyAdapter(List<model> list) {
this.list = list;
}
@NonNull
@Override
public MyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.chatroomrecyclerdesign,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyAdapter.ViewHolder holder, int position) {
model ld = list.get(position);
holder.title.setText(ld.getName());
holder.viewers.setText(ld.getViewers());
Glide.with(getActivity()).load(ld.getImage()).into(holder.circleImageView);
String documentid = ld.getDocumentid();
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private TextView title,viewers;
CircleImageView circleImageView;
public ViewHolder(View itemView) {
super(itemView);
title=(TextView)itemView.findViewById(R.id.chatroomtitlerecycler);
viewers=(TextView)itemView.findViewById(R.id.chatroomviewersrecycler);
circleImageView = itemView.findViewById(R.id.chatroomdisplayimagerecycler);
}
}
我的模型课
public static class model{
String image,name,documentid,viewers;
public model(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getDocumentid() {
return documentid;
}
public void setDocumentid(String documentid) {
this.documentid = documentid;
}
public String getViewers() {
return viewers;
}
public void setViewers(String viewers) {
this.viewers = viewers;
}
public model(String image,String name, String documentid, String viewers) {
this.image = image;
this.name = name;
this.documentid = documentid;
this.viewers = viewers;
}
}
我的数据库结构
【问题讨论】:
-
我认为 this 可能会有所帮助。
标签: java android database firebase android-studio