繁体   English   中英

我正在尝试使用回收站视图从 Firebase 数据库中检索数据,但出现错误

[英]i am trying to retrieve the data from fire base database using recycler view but i am getting errors in it

我正在尝试创建一个组活动,其中用户连接到的所有组都可以通过此活动显示。 我已经创建了组活动并在其中插入了回收者视图,并尝试从数据库中检索数据,但不幸的是,我收到了错误。我已经尝试了我所有的想法来解决我仍然收到错误。

目前,我收到此错误..发现两个 getter 或字段的属性区分大小写冲突:groupprofilename。

如果您不介意,请帮助我,以便我完成我的活动。

下面的代码是用户可以创建组的代码。

 private void groupmethos(final String groupname) {
    DatabaseReference groupref = rootref.child("Group").push();
    final String grouppushid = groupref.getKey();
    Map groupmap = new HashMap<>();
    groupmap.put("GroupprofileName",groupname);
    groupmap.put("Creater",currentUser.getUid());
    groupmap.put("StatusGroup","");
    groupmap.put("profileimage","");
    groupmap.put("id",grouppushid);
    rootref.child("Group").child(grouppushid).updateChildren(groupmap).addOnCompleteListener(new OnCompleteListener() {
        @Override
        public void onComplete(@NonNull Task task) {
            rootref.child("GroupMessage").child(grouppushid).setValue("").addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()){
                        rootref.child("userconnectedtogroup").child(currentUser.getUid()).child(grouppushid).setValue("Added").addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {
                                Toast.makeText(MainActivity.this,groupname + "group Created successfully",Toast.LENGTH_SHORT).show();
                            }
                        });

                    }
                }
            });

        }
    });
}

在上面的代码中,用户请求创建一个组。 下面给出的是使用 getter 和 setter 从数据库中获取数据的代码。

package com.nanb.alpha;

public class modelclass {
    public String GroupprofileName,StatusGroup,profileimage;

    public modelclass() {
    }

    public modelclass(String groupprofileName, String statusGroup, String profileimage) {
        this.GroupprofileName = groupprofileName;
        this.StatusGroup = statusGroup;
        this.profileimage = profileimage;
    }

    public String getGroupprofileName() {
        return GroupprofileName;
    }

    public void setGroupprofileName(String groupprofileName) {
        GroupprofileName = groupprofileName;
    }

    public String getStatusGroup() {
        return StatusGroup;
    }

    public void setStatusGroup(String statusGroup) {
        StatusGroup = statusGroup;
    }

    public String getProfileimage() {
        return profileimage;
    }

    public void setProfileimage(String profileimage) {
        this.profileimage = profileimage;
    }
}

给定代码是 recyclerview 用于将值设置为给定布局的代码。

public class group extends AppCompatActivity {

private RecyclerView recyclerView;
private DatabaseReference conref,groupref;
private FirebaseAuth mAuth;
private String Currentuserid;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_group);

    intialiation();
    mAuth = FirebaseAuth.getInstance();
    Currentuserid = mAuth.getCurrentUser().getUid();
    conref = FirebaseDatabase.getInstance().getReference().child("userconnectedtogroup").child(Currentuserid);
    groupref = FirebaseDatabase.getInstance().getReference().child("Group");
}

private void intialiation() {
    recyclerView = findViewById(R.id.recyclerview);
    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);
}

@Override
protected void onStart() {
    super.onStart();
    FirebaseRecyclerOptions option = new FirebaseRecyclerOptions.Builder<modelclass>().setQuery(conref,modelclass.class).build();

    FirebaseRecyclerAdapter<modelclass,group_viewHolder> adapter = new FirebaseRecyclerAdapter<modelclass, group_viewHolder>(option) {
        @Override
        protected void onBindViewHolder(@NonNull final group_viewHolder group_viewHolder, int i, @NonNull modelclass modelclass) {
            String userid = getRef(i).getKey();
            groupref.child(userid).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                  if(dataSnapshot.hasChild("profileimage")){
                      String profileimage = dataSnapshot.child("profileimage").getValue().toString();
                      String groupname = dataSnapshot.child("GroupprofileName").getValue().toString();
                      String groupStatus = dataSnapshot.child("StatusGroup").getValue().toString();

                      group_viewHolder.groupname.setText(groupname);
                      group_viewHolder.groupStatus.setText(groupStatus);
                      Picasso.get().load(profileimage).into(group_viewHolder.profileimage);
                  }else{
                      String groupname = dataSnapshot.child("GroupprofileName").getValue().toString();
                      String groupStatus = dataSnapshot.child("StatusGroup").getValue().toString();

                      group_viewHolder.groupname.setText(groupname);
                      group_viewHolder.groupStatus.setText(groupStatus);
                      Picasso.get().load(R.mipmap.groupicon).into(group_viewHolder.profileimage);
                  }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });
        }

        @NonNull
        @Override
        public group_viewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
           View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.grouplayout,parent,false);
           group_viewHolder groupholder = new group_viewHolder(view);
            return groupholder;
        }
    };
    recyclerView.setAdapter(adapter);
    adapter.startListening();
}

public static class group_viewHolder extends RecyclerView.ViewHolder{
    TextView groupname,groupStatus;
    CircleImageView profileimage;
    public group_viewHolder(@NonNull View itemView) {
        super(itemView);
        groupname = itemView.findViewById(R.id.Group_name);
        groupStatus = itemView.findViewById(R.id.Group_Status);
        profileimage = itemView.findViewById(R.id.group_profile_dp);
    }
}
}

由于您使用了 getter/setter 和构造函数,请将模型属性访问修饰符从public更改为private

private String GroupprofileName,StatusGroup,profileimage;

建议:你应该强烈遵循命名约定来编写代码以获得更好的可读性可理解性 检查这里

在模型类 .java 中初始化这个变量

  public String GroupprofileName;

         (change to)

  public String groupprofileName;

因为变量前缀字母应该是小写字母

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM