如何将此2值与FirebaseRecyclerAdapter进行比较?

时间:2017-07-10 08:27:38

标签: android firebase firebase-realtime-database firebaseui

我想将用户ID与用户中的相同密钥相关联,然后显示FirebaseRecyclerAdapter的密钥。我已经在Friend孩子中获得了密钥,但不知道如何将其与用户匹配。

enter image description here

我的代码:

    mFriendList = FirebaseDatabase.getInstance().getReference().child("Friends").child(current_id);

    mFriendDatabase = FirebaseDatabase.getInstance().getReference().child("Users");

    mFriendList.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            for (DataSnapshot snapshot : dataSnapshot.getChildren()) {

                String sd = snapshot.getKey(); //key from Friends

                final FirebaseRecyclerAdapter<Users_Friends, UsersFriendViewHolder> firebaseRecyclerAdapter =
                        new FirebaseRecyclerAdapter<Users_Friends, UsersFriendViewHolder>(
                                Users_Friends.class,
                                R.layout.users_single_friend_layout,
                                UsersFriendViewHolder.class,
                                filter
                        ) {
                            @Override
                            protected void populateViewHolder(UsersFriendViewHolder viewHolder, Users_Friends users, int position) {
                                viewHolder.setDisplayName(users.getName());
                                viewHolder.setStatusUsers(users.getStatus());
                                viewHolder.setUserImage(users.getImage(), getContext().getApplicationContext());

                                final String user_id = getRef(position).getKey();

                                viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                        Intent profileIntent = new Intent(getActivity(), ProfileActivity.class);
                                        profileIntent.putExtra("user_id", user_id);
                                        startActivity(profileIntent);
                                    }

                                });
                            }
                        };
                mReqList.setAdapter(firebaseRecyclerAdapter);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

1 个答案:

答案 0 :(得分:0)

您只需要在exists()对象上直接使用dataSnapshot方法,如下所示:

ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if(dataSnapshot.child(current_id).exists()) {
            Log.d("TAG", "User exists");
        } else {
            Log.d("TAG", "User does not exist");
        }
    }

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