Android-Firebase获取另一张表上的所有数据

Android-Firebase获取另一张表上的所有数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,实际上,人们可以互相发送请求。我想做的是在一个人的个人资料中显示发送给该人的所有请求。我可以在recyclerview中使用firebase适配器显示所有用户信息,但不能仅显示请求发送者。我该怎么办?如果你能给我们一个主意,我会很高兴的 据我所知,您想要显示父项的子项名称,可以使用此代码 DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Friend_req").child("recieved

实际上,人们可以互相发送请求。我想做的是在一个人的个人资料中显示发送给该人的所有请求。我可以在recyclerview中使用firebase适配器显示所有用户信息,但不能仅显示请求发送者。我该怎么办?如果你能给我们一个主意,我会很高兴的


据我所知,您想要显示父项的子项名称,可以使用此代码

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Friend_req").child("recieved").child("id_of_reciepent");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String request_sender_id = (String) ds.getKey();


        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
ref.addListenerForSingleValueEvent(eventListener);

要仅显示发送好友请求的好友的姓名,您需要查询数据库两次。请使用以下代码来实现此目的

String uid = firebaseAuth.getCurrentUser().getUid();

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Friend_req").child("recieved").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String key = ds.getKey();

            DatabaseReference userRef = rootRef.child("Users").child();
            ValueEventListener eventListener = new ValueEventListener(key) {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    for(DataSnapshot dSnapshot : dataSnapshot.getChildren()) {
                        String name = dSnapshot.child("Name").getValue(String.class);
                        Log.d("TAG", name);
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {}
            };
            userRef.addListenerForSingleValueEvent(eventListener);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);
您的输出将是:

Bob
Second Friend