지정 및 확인 상태를 일치시켜 사용자 목록을 가져 오려고하는 앱을 만들고 있습니다. 확인 상태가 0이면 데이터베이스에서 확인 상태가 1 인 경우 (그리고 일치하는 지정도) 목록에서 해당 사용자를 가져와야합니다. 사용자 지정을 일치시켜 목록을 가져 오려고했는데 제대로 작동하지만 확인 상태를 일치 시키려고하면 앱이 중단됩니다.
목록을 가져오기위한 내 코드.
mUsersList=(RecyclerView)findViewById(R.id.advrecyclerview);
mUsersList.setHasFixedSize(true);
mUsersList.setLayoutManager(new LinearLayoutManager(this));
mUsersDatabaseReference= FirebaseDatabase.getInstance().getReference().child("users");
mUsersDatabaseReference.keepSynced(true);
}
@Override
protected void onStart() {
super.onStart();
//String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
//mUsersDatabaseReference.child(uid).child("online").setValue("true");
//-------FIREBASE RECYCLE VIEW ADAPTER-------
mUsersDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String verifiedStatus = dataSnapshot.child("VerificationStatus").getValue().toString();
if (verifiedStatus.equals("1")){
FirebaseRecyclerAdapter<Users, UserViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Users, UserViewHolder>(
Users.class,
R.layout.recycle_list_single_user,
AdvTalkActivity.UserViewHolder.class, mUsersDatabaseReference.orderByChild("designation").equalTo("ADVOCATE")){
@Override
protected void populateViewHolder(final AdvTalkActivity.UserViewHolder viewHolder, final Users users, final int position) {
viewHolder.setName(users.getName());
viewHolder.setStatus(users.getStatus());
viewHolder.setdesignation(users.getDesignation());
viewHolder.setImage(users.getThumb_image(), getApplicationContext());
final String user_id = getRef(position).getKey();
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent profileIntent = new Intent(AdvTalkActivity.this, ProfileActivity.class);
profileIntent.putExtra("user_id", user_id);
startActivity(profileIntent);
}
});
}
};
mUsersList.setAdapter(firebaseRecyclerAdapter);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
SweetToast.error(AdvTalkActivity.this, "Unknown Error...");
}
});
}
public static class UserViewHolder extends RecyclerView.ViewHolder{
View mView;
public UserViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setName(String name) {
TextView userNameView=(TextView)mView.findViewById(R.id.textViewSingleListName);
userNameView.setText(name);
}
public void setStatus(String status) {
TextView userStatusView=(TextView)mView.findViewById(R.id.textViewSingleListStatus);
userStatusView.setText(status);
}
public void setImage(String thumb_image, Context ctx) {
CircleImageView userImageView = (CircleImageView)mView.findViewById(R.id.circleImageViewUserImage);
//Log.e("thumb URL is--- ",thumb_image);
Picasso.with(ctx).load(thumb_image).placeholder(R.drawable.avtarr).into(userImageView);
}
public void setdesignation(String designation){
TextView userStatusView=(TextView)mView.findViewById(R.id.textViewSingleListDesignation);
userStatusView.setText(designation);
}
}
@Override
protected void onStop() {
//String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
//mUsersDatabaseReference.child(uid).child("online").setValue(ServerValue.TIMESTAMP);
super.onStop();
}
}