Abhas Sharma
Abhas Sharma

Reputation: 101

Can't convert object of type String to Custom model error in Firebase Android

I am creating a chat feature into my app and I am getting error while reading the value from firebase realtime database. And error is shown in image.

Here is my addValueEventListener method for getting the chats from database.enter image description here

 mMessageDatabaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
               // Map<String, Object> map = (Map<String, Object>) snapshot.getValue(TeamMessage.class);
                TeamMessage teamMessage = snapshot.getValue(TeamMessage.class);
                Log.d("FirebaseMessage", "Message is: " + teamMessage.getText());
                teamMessages.add(teamMessage);
              //  Log.d("TeamMessage", teamMessage.getText().toString());
            }

And here is I am getting reference and setting the value to the database.

  mFirebaseDatabase = FirebaseDatabase.getInstance(); // newly added
        mMessageDatabaseReference = mFirebaseDatabase.getReference("messages"); // newly added
        binding.iconSend.setOnClickListener(new View.OnClickListener() { // newly added
            @Override
            public void onClick(View v) {
                String text = binding.messageEditText.getText().toString();
                TeamMessage teamMessage = new TeamMessage();
                teamMessage.setName(mUsername);
                teamMessage.setText(text);

               mMessageDatabaseReference.push().setValue(teamMessage);
              // Log.d("Message","Message is: "+ mMessageDatabaseReference.get());
                // Clears input box
               binding.messageEditText.setText("");
               hideKeyboard();
            }
        });

Here is my TeamMessage model class.

public class TeamMessage {
    private String text;
    private String name;

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public String getName() {
        return name;
    }

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

Now issue is whenever I am trying to read value from addEventListener method I am not getting and unable to display the chats but I can see message is stored in database.

Here is the database structure in json format.

{
  "messages": {
    "-N6wkBpYaBQkdKw-SXee": "",
    "-N6wl4Xy-vNkbSYnBAmp": "hgdg",
    "-N6wl62WLQb15j_fMbSo": "hgdg",
    "-N7-nkD74qMHbJvUUvgP": "Hi abhas",
    "-N7-nmbGlbGPVMlKafwr": "Hi abhas",
    "-N7-nmmi-R7F6xEceHN9": "Hi abhas",
    "-N7-nmrPI1skXb-ywOIg": "Hi abhas",
    "-N7-oiEEXcbPvxgZXu1D": "hi everybody",
    "-N7FAvDvOyjUqtvsRJh9": "Hi",
    "-N7FAvE3K-D_RwNHBAQN": "Hi",
    "-N7FC1Em5-njw3KLit8k": "hi",
    "-N7FDE4FH9gYY8ox683S": "hi",
    "-N7FHpph7nlAQALmcbGB": "hi",
    "-N7FsDWxnUhL1DL5HeF6": {
      "name": "anonymous",
      "text": "hi"
    },
    "-N7FsQSRXl9RRQ6O09gj": {
      "name": "anonymous",
      "text": "Hi"
    },
    "-N7Fvd16MOYeFaCMfErB": {
      "name": "anonymous",
      "text": "hi"
    },
    "-N7Fw6YVjL7TRT3cvk8r": {
      "name": "anonymous",
      "text": "hi"
    },
    "-N7G1o9aYbIdTPGhyugC": {
      "name": "anonymous",
      "text": "Hey"
    },
    "-N7G5YnGf34Qe0TbbIKD": {
      "name": "anonymous",
      "text": "Hi"
    },
    "-N7G5sHUkEE4pt8nB3J0": {
      "name": "anonymous",
      "text": "Saara"
    }
  }
}

Upvotes: 0

Views: 131

Answers (1)

Adnan Bashir
Adnan Bashir

Reputation: 763

after checking your msgs JSON file i found the problem , acctualy your model is not same type of json . this json is valid syntext but not valid for your code , you need to delete

 "-N6wkBpYaBQkdKw-SXee": "",
    "-N6wl4Xy-vNkbSYnBAmp": "hgdg",
    "-N6wl62WLQb15j_fMbSo": "hgdg",
    "-N7-nkD74qMHbJvUUvgP": "Hi abhas",
    "-N7-nmbGlbGPVMlKafwr": "Hi abhas",
    "-N7-nmmi-R7F6xEceHN9": "Hi abhas",
    "-N7-nmrPI1skXb-ywOIg": "Hi abhas",
    "-N7-oiEEXcbPvxgZXu1D": "hi everybody",
    "-N7FAvDvOyjUqtvsRJh9": "Hi",
    "-N7FAvE3K-D_RwNHBAQN": "Hi",
    "-N7FC1Em5-njw3KLit8k": "hi",
    "-N7FDE4FH9gYY8ox683S": "hi",
    "-N7FHpph7nlAQALmcbGB": "hi",

these entries , which is not valid for your mode.

your model except

"-N7FsDWxnUhL1DL5HeF6": {
      "name": "anonymous",
      "text": "hi"
    },
    "-N7FsQSRXl9RRQ6O09gj": {
      "name": "anonymous",
      "text": "Hi"
    },
    "-N7Fvd16MOYeFaCMfErB": {
      "name": "anonymous",
      "text": "hi"
    },
    "-N7Fw6YVjL7TRT3cvk8r": {
      "name": "anonymous",
      "text": "hi"
    },
    "-N7G1o9aYbIdTPGhyugC": {
      "name": "anonymous",
      "text": "Hey"
    },
    "-N7G5YnGf34Qe0TbbIKD": {
      "name": "anonymous",
      "text": "Hi"
    },
    "-N7G5sHUkEE4pt8nB3J0": {
      "name": "anonymous",
      "text": "Saara"
    }

this type of data ,

Upvotes: 1

Related Questions