如何在不知道firebase实时数据库中的父元素的情况下访问子元素?

时间:2018-05-08 01:36:39

标签: android firebase-realtime-database

如何在不知道firebase实时数据库中的父元素的情况下访问子元素?如何在不知道父级的情况下通过userId获取数据。

这是我的database structure

1 个答案:

答案 0 :(得分:0)

假设following节点是Firebase根目录的直接子节点,要显示followCaseparentIduserId属性的值,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference followingRef = rootRef.child("following");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            for(DataSnapshot dSnapshot : ds.getChildren()) {
                String followCase = ds.child("followCase").getValue(String.class);
                String parentId = ds.child("parentId").getValue(String.class);
                String userId = ds.child("userId").getValue(String.class);
                Log.d("TAG", followCase + " / " + parentId + " / " + userId);

            }
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
followingRef.addListenerForSingleValueEvent(valueEventListener);

输出将是:

0 / B4RV...NI73 / P3y8...8NO2
//and so on