我的数据库中只有一个,只有一个条目。我在androidstudio中使用此代码将其推送到那里:
FirebaseDatabase.getInstance().getReference().push().setValue(singleMessage);
每个" singleMessage"由三个领域组成:
public class SingleMessage {
private String messageBody;
private String messageAuthor;
private String messageTime;
...
}
现在,我想阅读该条目,并打印所有三个字段。虽然听起来很容易,但我无法理解。请帮我。我读过类似的问题/答案。没有帮助
答案 0 :(得分:1)
FirebaseDatabase.getInstance().getReference().addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get object and use the values to update the UI
SingleMessage singleMessage = dataSnapshot.getValue(SingleMessage.class);
// Do something with the data
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};);
答案 1 :(得分:1)
更改数据库结构并使用:
DatabaseReference db= FirebaseDatabase.getInstance().getReference().child("singleMessage").push();
为什么?能够在随机push
键内循环。
然后你可以这样做:
db.addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
String messagebody=data.child("messagebody").getValue().toString();
String messageauthor=data.child("messageauthor").getValue().toString();
String messagetime=data.child("messagetime").getValue().toString();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};);
首先,您要添加对侦听器的引用,然后使用for循环,data
将在push
的随机singleMessage
键内迭代