我正在尝试使用JAVA从Android中的Firebase数据库中读取数据。我有以下数据库:
{
"info" : {
"about" : "...........",
"address" : "...........",
"bus" : "",
"contact" : "........",
"email" : ".........",
"mobile_phone" : ".........",
"trolley" : ""
},
"schedule" : {
"47" : {
"hall" : {
"id" : 2,
"name" : "..."
},
"presentation" : {
"about" : "",
"id" : 1,
"title" : "....."
},
"section" : {
"id" : 2,
"name" : ".... "
},
"speakers" : [ 101 ],
"time_end" : 0,
"time_start" : 1416652800,
"url" : "......"
}
}
}
我可以阅读简单的结构,例如:
ref.child("info").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Info msg =dataSnapshot.getValue(Info.class);
System.out.println(msg.getEmail());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
但我不知道如何从结构“计划”中检索数据。我试图重新创建POJO并阅读结构,但它不起作用。
ref.child( "schedule" ).addValueEventListener( new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for ( DataSnapshot postSnapshot : dataSnapshot.getChildren() ) {
Schedule msg = dataSnapshot.getValue( Schedule.class );
System.out.println( msg.getHall().getId() );
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
} );
答案 0 :(得分:0)
小错误,只需在for循环中将dataSnapshot
更改为postSnapshot
,您就可以了。
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Schedule msg = postSnapshot.getValue(Schedule.class);
System.out.println(msg.getHall().getId());
}
如果问题仍然存在,那么它就是你的POJO。