【发布时间】:2016-12-02 18:54:41
【问题描述】:
我正在尝试根据属性值查询我的 firebase 数据库中的项目。
这是我的结构:
这是我的 POJO 对象:
public class LapTime {
private int vehicleType;
private String track;
private String user;
private int time;
}
这是我的查询代码:
mDatabase.child("lap-time").orderByChild("track").equalTo(mTrackUuid).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
time = dataSnapshot.getValue(LapTime.class).getTime() + "ms");
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我的问题是我返回的数据快照针对的是 root lap-time 而不是 UUID,因此 getValue(LapTime.class) 给了我一个空对象...
这是我得到的数据快照:
DataSnapshot { key = lap-time, value = {-KXwSxD0GYVC6awV8abw={track=-KXwSxCeV2Ib4Gt4pvjy, time=105000, vehicle-type=0, user=ZQKwPfRF0mVL5jAO7FaSPcsF7t42}} }
这就是我想要得到的:
DataSnapshot { key = -KXwSxD0GYVC6awV8abw, value ={track=-KXwSxCeV2Ib4Gt4pvjy, time=105000, vehicle-type=0, user=ZQKwPfRF0mVL5jAO7FaSPcsF7t42}} }
我该怎么做?
【问题讨论】:
-
您想解析所有单圈时间的孩子还是特定的孩子?您可以使用
dataSnapshot.getChildren()遍历孩子。否则,需要在带有UID的节点上设置ValueEventListener
标签: android firebase-realtime-database