首页 > 解决方案 > 在对象名称之间检索

问题描述

我想从 firebase 实时数据库中检索中间对象名称。我的数据库看起来像:

数据库快照

在这个例子中,我有兴趣检索rBRAalNLEyfEcGeCDjMUOQGxXIF2一个孩子。请帮忙!

标签: javaandroidfirebasefirebase-realtime-database

解决方案


有两种方法可以 从实时数据库中获取rBRAalNLEyfEcGeCDjMUOQGxXIF2 。

1) 如果您知道父母 id,请尝试使用此代码获取rBRAalNLEyfEcGeCDjMUOQGxXIF2

 final DatabaseReference realTimeDataBaseRef=FirebaseDatabase.getInstance().getReference().child("friend_request").child("cUCvOB7EDDcBQeffxvPslG2pz2A2");
       realTimeDataBaseRef.addValueEventListener(new ValueEventListener(){
          @Override
          public void onDataChange(@NonNull DataSnapshot dataSnapshot){
             for(DataSnapshot item1: dataSnapshot.getChildren()){
                Log.i("check_middle_value",""+item1.getKey());
             }
          }

          @Override
          public void onCancelled(@NonNull DatabaseError databaseError){
          }
       });

2)如果您不知道父键,请尝试此代码。

final DatabaseReference realTimeDataBase=
           FirebaseDatabase.getInstance().getReference().child("friend_request").child("cUCvOB7EDDcBQeffxvPslG2pz2A2");
        realTimeDataBase.addValueEventListener(new ValueEventListener(){
           @Override
           public void onDataChange(@NonNull DataSnapshot dataSnapshot){
              for(DataSnapshot item: dataSnapshot.getChildren()){
                 realTimeDataBase.child(item.getKey()).addValueEventListener(new ValueEventListener(){
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot){
                       for(DataSnapshot item1: dataSnapshot.getChildren()){
                          Log.i("check_middle_value",""+item1.getKey());
                       }
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError){
                    }
                 });
                 break;
              }
           }

           @Override
           public void onCancelled(@NonNull DatabaseError databaseError){
           }
        });

推荐阅读