首页 > 解决方案 > 从多个孩子 Android Firebase 中检索同一个孩子

问题描述

这是我的数据库的样子:

数据库

正如您在“Mjerenja”下看到的,有多个代表日期的孩子。在这些孩子中的每一个之下,都有一个名为“最新”的孩子,它拥有一个真或假的价值。在这个数据库中,总是只有一个最新的孩子的值为真,而其余的总是假的。我该如何去检索这个孩子,更具体地说是从持有“最新”值的孩子中获取“基准”孩子?

标签: javaandroiddatabasefirebase

解决方案


有一个称为“最新”的孩子,它拥有真或假值。

查看您的数据库,“最新”属性的值为真或假,但作为字符串而不是布尔值。但是,如果您想获取“最新”属性设置为 的项目true,请使用以下代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mjerenjaRef = rootRef.child("Mjerenja");
Query latestQuery = mjerenjaRef.orderByChild("latest").equalTo("true");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String datum = ds.child("datum").getValue(String.class);
            Log.d("TAG", datum);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d("TAG", databaseError.getMessage()); //Don't ignore potential errors!
    }
};
latestQuery.addListenerForSingleValueEvent(valueEventListener);

logcat 中的输出将是:

15/11/2020

推荐阅读