Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从所有用户的FirebaseRecyclerAdapter中隐藏当前用户?_Java_Android_Firebase_Firebase Realtime Database_Android Recyclerview - Fatal编程技术网

Java 如何从所有用户的FirebaseRecyclerAdapter中隐藏当前用户?

Java 如何从所有用户的FirebaseRecyclerAdapter中隐藏当前用户?,java,android,firebase,firebase-realtime-database,android-recyclerview,Java,Android,Firebase,Firebase Realtime Database,Android Recyclerview,目前,它提取所有用户的详细信息,并填充他们的图像、姓名和简历。我希望它从用户列表中隐藏当前用户,但我不知道如何实现它的代码 我尝试了if/while语句将dataSnapshot与当前用户进行比较,但我不知道如何根据这种情况填充用户 public class SearchFragment extends Fragment { private RecyclerView usersList; private DatabaseReference databaseReference;

目前,它提取所有用户的详细信息,并填充他们的图像、姓名和简历。我希望它从用户列表中隐藏当前用户,但我不知道如何实现它的代码

我尝试了
if/while
语句将
dataSnapshot
与当前用户进行比较,但我不知道如何根据这种情况填充用户

public class SearchFragment extends Fragment {
    private RecyclerView usersList;
    private DatabaseReference databaseReference;
    private DatabaseReference userDatabase;
    private DatabaseReference checkName;
    private FirebaseAuth firebaseAuth;
    private String currentUserID;
    private View view;

    public SearchFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        view =  inflater.inflate(R.layout.fragment_search, container, false);
        usersList = view.findViewById(R.id.search_users);
        firebaseAuth = FirebaseAuth.getInstance();
        currentUserID = firebaseAuth.getCurrentUser().getUid();
        databaseReference = FirebaseDatabase.getInstance().getReference().child("Users");
        userDatabase = FirebaseDatabase.getInstance().getReference();
        checkName = userDatabase.child("Users").child(currentUserID).child("name");
        usersList.setHasFixedSize(true);
        usersList.setLayoutManager(new LinearLayoutManager(getContext()));

        return view;
    }

    @Override
    public void onStart() {
        super.onStart();
        final FirebaseRecyclerOptions<Users> options = new FirebaseRecyclerOptions.Builder<Users>()
                .setQuery(databaseReference, Users.class)
                .build();

        FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Users, SearchFragment.UsersViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull SearchFragment.UsersViewHolder holder, int position, @NonNull final Users users) {
                 holder.setName(users.getName());
                 holder.setCity(users.getCity());
                 holder.setImage(users.getImage());

                final String user_ID = getRef(position).getKey();
                final String user_Name = users.getName();
                final String user_Img = users.getImage();

                holder.mView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        CharSequence pickOption[] = new CharSequence[]{"View Profile", "Send Message"};

                        final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
                        builder.setTitle("Select an Option");
                        builder.setItems(pickOption, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                if (i == 0){
                                    Intent otherProfileIntent = new Intent(getActivity(), OthersProfileActivity.class);
                                    otherProfileIntent.putExtra("user_ID", user_ID);
                                    otherProfileIntent.putExtra("user_Name", user_Name);
                                    otherProfileIntent.putExtra("user_Img", user_Img);
                                    startActivity(otherProfileIntent);
                                }

                                if (i == 1) {
                                    Intent messageIntent = new Intent(getActivity(), MessageActivity.class);
                                    messageIntent.putExtra("user_ID", user_ID);
                                    messageIntent.putExtra("user_Name", user_Name);
                                    messageIntent.putExtra("user_Img", user_Img);
                                    startActivity(messageIntent);
                                }
                            }
                        });

                        builder.show();
                    }
                });
            }

            @NonNull
            @Override
            public SearchFragment.UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.users_layout, parent, false);
                return new SearchFragment.UsersViewHolder(view);
            }
        };

        usersList.setAdapter(adapter);
        adapter.startListening();
    }

    @Override
    public void onStop() {
        super.onStop();
    }

    public static class UsersViewHolder extends RecyclerView.ViewHolder {
        View mView;

        public UsersViewHolder(View itemView) {
            super(itemView);
            mView = itemView;
        }

        public void setName(String name) {
            TextView userNameView = mView.findViewById(R.id.single_userName);
            userNameView.setText(name);
        }

        public void setCity(String name) {
            TextView userNameView = mView.findViewById(R.id.single_userStatus);
            userNameView.setText(name);
        }

        public void setImage(String image) {
            CircleImageView userImage = mView.findViewById(R.id.single_userImg);
            if(!image.equals("default")) {
                Picasso.get().load(image).into(userImage);
            }
        }
    }
}
公共类SearchFragment扩展了片段{
私有RecyclerView用户列表;
私有数据库参考数据库参考;
私有数据库参考用户数据库;
私有数据库引用checkName;
私有FirebaseAuth FirebaseAuth;
私有字符串currentUserID;
私人视野;
公共搜索片段(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment\u搜索,容器,错误);
usersList=view.findviewbyd(R.id.search\u用户);
firebaseAuth=firebaseAuth.getInstance();
currentUserID=firebaseAuth.getCurrentUser().getUid();
databaseReference=FirebaseDatabase.getInstance().getReference().child(“用户”);
userDatabase=FirebaseDatabase.getInstance().getReference();
checkName=userDatabase.child(“用户”).child(currentUserID).child(“名称”);
setHasFixedSize(true);
setLayoutManager(新的LinearLayoutManager(getContext());
返回视图;
}
@凌驾
public void onStart(){
super.onStart();
最终FirebaseRecyclerOptions选项=新建FirebaseRecyclerOptions.Builder()
.setQuery(数据库引用,Users.class)
.build();
FirebaseRecyclerAdapter=新的FirebaseRecyclerAdapter(选项){
@凌驾
受保护的无效onBindViewHolder(@NonNull SearchFragment.UsersViewHolder holder,int位置,@NonNull final Users){
holder.setName(users.getName());
holder.setCity(users.getCity());
setImage(users.getImage());
最终字符串user_ID=getRef(position).getKey();
最后一个字符串user_Name=users.getName();
最后一个字符串user_Img=users.getImage();
holder.mView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
CharSequence pickOption[]=新的CharSequence[]{“查看配置文件”、“发送消息”};
final AlertDialog.Builder=新建AlertDialog.Builder(getContext());
builder.setTitle(“选择选项”);
setItems(pickOption,新的DialogInterface.OnClickListener(){
@凌驾
公共void onClick(DialogInterface,inti){
如果(i==0){
Intent otherProfileIntent=新的Intent(getActivity(),OthersProfileActivity.class);
otherProfileIntent.putExtra(“用户ID”,用户ID);
otherProfileIntent.putExtra(“用户名”,用户名);
otherProfileIntent.putExtra(“user\u Img”,user\u Img);
星触觉(其他外形意图);
}
如果(i==1){
Intent messageIntent=新的意图(getActivity(),MessageActivity.class);
messageIntent.putExtra(“用户标识”,用户标识);
messageIntent.putExtra(“用户名”,用户名);
messageIntent.putExtra(“user\u Img”,user\u Img);
星触觉(messageIntent);
}
}
});
builder.show();
}
});
}
@非空
@凌驾
public SearchFragment.UsersViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int viewType){
View-View=LayoutInflater.from(parent.getContext()).flate(R.layout.users\u布局,parent,false);
返回新的SearchFragment.UsersViewHolder(视图);
}
};
setAdapter(适配器);
adapter.startListening();
}
@凌驾
公共void onStop(){
super.onStop();
}
公共静态类UsersViewHolder扩展了RecyclerView.ViewHolder{
视图视图;
公共用户查看文件夹(查看项目视图){
超级(项目视图);
mView=项目视图;
}
公共void集合名(字符串名){
TextView userNameView=mView.findviewbyd(R.id.single_userName);
userNameView.setText(名称);
}
public void setCity(字符串名称){
TextView userNameView=mView.findviewbyd(R.id.single\u userStatus);
userNameView.setText(名称);
}
公共void setImage(字符串图像){
CircleImageView userImage=mView.findViewById(R.id.single_userImg);
如果(!image.equals(“默认”)){
Picasso.get().load(image).into(userImage);
}
}
}
}

我希望当前用户从
RecyclerView
中的所有用户列表中隐藏。提前谢谢

> P>您可以考虑修改<代码>数据库访问> <代码>,如下所示。p>
databaseReference = FirebaseDatabase.getInstance().getReference().child("Users");
checkName = userDatabase.child("Users").child(currentUserID).child("name");

// This is your updated database reference
databaseReference = FirebaseDatabase.getInstance().getReference()
        .child("Users").child(currentUserID);
final FirebaseRecyclerOptions<Users> options = new FirebaseRecyclerOptions.Builder<Users>()
    .setQuery(databaseReference.equalTo(null), Users.class)
    .build();

现在,为您的代码设置FixBaseCyrEnter适配器< /C>时,您可以考虑设置查询LIK。