当我尝试从Firebase获取数据快照时。我没有正确获取数据。关键实际上是有价值的。
DatabaseReference mmmmref = FirebaseDatabase.getInstance().getReference("MessageRooms")
.child(id).child("messages");
mmmmref.addListenerForSingleValueEvent(new ValueEventListener() {
Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String ms = dataSnapshot.getValue(message.class).getText();
}
所以我为空。
我的DataSnapshot在日志中显示为
{ key = messages,
value = {-LeNVOFh_Bo6g7Z69Ibq=
{text=zzzz, date=19-05-08 22:33:09, type=text}
}
}
这里的关键应该是这个 LeNVOFh_Bo6g7Z69Ibq ,而不是消息
我需要一个可以处理邮件列表的答案。 在db中插入代码
String RoomKey = mref.child("MessageRooms").push().getKey();
chatroomref = mref.child("MessageRooms").child(RoomKey);
chatroomref.child("creator").setValue(FirebaseAuth.getInstance().getUid());
chatroomref.child("member").setValue(userids);
roommesssageRef = chatroomref.child("messages");
message message = new message();
message.setDate(Mfirebase.getTimeStamp());
message.setText("zzzz");
message.setType("text");
roommesssageRef.push().setValue(message);
消息模型类
public class message {
String text;
String type;
String date;
public message() {
}
public message(String text, String type, String date) {
this.text = text;
this.type = type;
this.date = date;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
数据库
答案 0 :(得分:1)
如果您的message.class
具有与Firebase数据库中的类型匹配的类型,则唯一的问题就是引用。
您需要更深一层
DatabaseReference ref = chatroomref.child("messages").child("-LeNVOFh_Bo6g7Z69lbq");
如果您使用getChildren()
进行循环,请检查您的message.class以匹配与Firebase中相同的名称和变量类型。