从android firebase中获取来自未知密钥的孩子

时间:2018-03-19 00:36:48

标签: android firebase firebase-realtime-database

我有一个数据库,其中包含用户进行的生活方式测验的带时间戳条目。模式如下,其中时间戳的子项是与用户输入相对应的键值对。

-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类型的对象中?

1 个答案:

答案 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) {

                    }
                });