我有一个数据库,其中包含用户进行的生活方式测验的带时间戳条目。模式如下,其中时间戳的子项是与用户输入相对应的键值对。
-EvcKZHBZ4CVo9yAdlP7ldadCZS03
-2018-03-19 12:19:49
- age: "20"
- exercise_total: "0"
...
-2018-03-18 12:32:44
- age: "20"
- exercise_total: "15"
...
我有一个名为heartScore
的对象,其成员变量对应于时间戳的所有子项。如果我不知道测验的确切日期,如何将第一个日期条目下的数据返回到heartScore
类型的对象中?
答案 0 :(得分:0)
这应该可以解决问题:
databaseReference.child("userId").limitToFirst(1)
在实践中:
FirebaseReference ref = FirebaseDatabase.getInstance().getReference()
ref.child(userId).limitToFirst(1).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot: dataSnapshot.getChildren()){
// There will only be one child
HeartScore score = snapshot.getValue(HeartScore.class);
// Return the HeartScore object in a callback or whatever else you want
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});