Home > Enterprise >  com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String t
com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String t

Time:01-05

I am not able to retrieve data from Firebase it always crashes saying:

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.whatsappclone.User

This is My Model Class

public class User {

String uid, name, phoneNumber, profileImage;

public User()
{

}

public User(String uid, String name, String phoneNumber, String profileImage) {
    this.uid = uid;
    this.name = name;
    this.phoneNumber = phoneNumber;
    this.profileImage = profileImage;
}

public String getUid() {
    return uid;
}

public void setUid(String uid) {
    this.uid = uid;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getPhoneNumber() {
    return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
    this.phoneNumber = phoneNumber;
}

public String getProfileImage() {
    return profileImage;
}

public void setProfileImage(String profileImage) {
    this.profileImage = profileImage;
}

}

This is My ViewHolder Class

public class UsersAdapter extends RecyclerView.Adapter<UsersAdapter.UsersViewHolder> {


Context context;
ArrayList<User> users;
public UsersAdapter(Context context, ArrayList<User>users) {
    this.context = context;
    this.users = users;
}

@NonNull
@Override
public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(context).inflate(R.layout.conversation_layout, parent, false);

    return new UsersViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull UsersViewHolder holder, int position) {

    User user = users.get(position);
    holder.binding.userName.setText(user.getName());

    Glide.with(context).load(user.getProfileImage())
            .into(holder.binding.profile);

}

@Override
public int getItemCount() {
    return users.size();
}

public class UsersViewHolder extends RecyclerView.ViewHolder {

    ConversationLayoutBinding binding;

    public UsersViewHolder(@NonNull View itemView) {
        super(itemView);

        binding = ConversationLayoutBinding.bind(itemView);
    }
}

}

This is My MainActivity

public class MainActivity extends AppCompatActivity {

ActivityMainBinding binding;
FirebaseDatabase database;
ArrayList<User> users;
UsersAdapter usersAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    binding = ActivityMainBinding.inflate(getLayoutInflater());
    setContentView(binding.getRoot());

    database = FirebaseDatabase.getInstance();
    users = new ArrayList<>();

    usersAdapter = new UsersAdapter(this, users);
    binding.recyclerView.setAdapter(usersAdapter);

    database.getReference().child("users").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {

            users.clear();
            for (DataSnapshot snapshot1 : snapshot.getChildren())
            {
                User user = snapshot1.getValue(User.class);
                users.add(user);

            }
            usersAdapter.notifyDataSetChanged();
        }

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

        }
    });
}
}

My Firebase database Structured

Firebase Database Strucuture

Firebase JSON

{ "users" : {
"A5DEg64d47StvLuvRtLWiu1bHSC3" : {
  "name" : "Rahul Singh",
  "phoneNumber" : " 918350877517",
  "profileImage" : "https://firebasestorage.googleapis.com/v0/b/whatsapp-clone-b908d.appspot.com/o/Profiles/A5DEg64d47StvLuvRtLWiu1bHSC3?alt=media&token=55fcdc75-da0c-43f5-8f9c-44bfa7df500f",
  "uid" : "A5DEg64d47StvLuvRtLWiu1bHSC3"
},
"CO6Yw59BHweNJ03UdbcsGq4kyXY2" : {
  "name" : "Alok Bhai",
  "phoneNumber" : " 919886542409",
  "profileImage" : "https://firebasestorage.googleapis.com/v0/b/whatsapp-clone-b908d.appspot.com/o/Profiles/CO6Yw59BHweNJ03UdbcsGq4kyXY2?alt=media&token=b006e40d-e8df-4b96-9165-d980cd018af3",
  "uid" : "CO6Yw59BHweNJ03UdbcsGq4kyXY2"
},
"F8mhqJk4POeLFWxpF373K2D8DYG2" : {
  "name" : "radhe govind'",
  "phoneNumber" : " 916378757808",
  "profileImage" : "No Image",
  "uid" : "F8mhqJk4POeLFWxpF373K2D8DYG2"
},
"NOt57HC59DZm1s5XaBk0mHb9H553" : {
  "name" : "Mohit Dada           
  •  Tags:  
  • Related