Reputation: 101
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.
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
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