如何从发送朋友请求的Firebase数据库中获取所有用户

时间:2018-07-29 05:10:44

标签: android firebase firebase-realtime-database

我只想检索所有具有“ request_type:接收”的用户。我要如何在android studio中做到这一点?用于聊天应用程序的请求片段。我只想在RecyclerView中显示所有好友请求。

Image

2 个答案:

答案 0 :(得分:1)

签出下面的查询。它可以帮助您。

Query query = FirebaseDatabase.getInstance().getReference().child("Friend_req").orderByChild("request_type").equalTo("received");
    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            // Do your job
        }

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

        }
    });

答案 1 :(得分:0)

要解决此问题,您需要使用Friend_req方法遍历getChildren()节点两次:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = rootRef.child("Friend_req");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot dSnapshot : dataSnapshot.getChildren()) {
            for(DataSnapshot ds : dSnapshot.getChildren()) {
                String requestType = ds.child("request_type").getValue(String.class);
                if(requestType.equals("receive")) {
                    Log.d("TAG", "Request received!");
                }
            }
        }
    }

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