firebase中uid的比较在FireBaseRecyclerAdapter中不一致

mm9b1k5b  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(338)

这个问题在这里已经有答案了

如何比较java中的字符串(23个答案)
四天前关门了。
我想为除当前用户以外的所有用户显示视图持有者。我发现的最佳解决方案是简单地查询所有“用户”,然后隐藏当前的用户视图持有者。因此,我检查模型用户是否是当前用户。但是,我的if语句没有发挥应有的作用。我打印出两个uid,很明显它们是相等的。但是,我的if语句应该只在它们不相等时运行,它仍然在活动最初打开时执行。如果我跳转到另一个活动,然后返回到这个活动,那么它就可以正常工作,并隐藏视图。有人知道为什么我的if语句在第一次创建活动时不起作用吗?

final FirebaseRecyclerAdapter<Users, UsersViewHolder>  adapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull UsersViewHolder holder, final int position, @NonNull final Users model) {

                holder.setInfo(getApplicationContext(), model.getUsername(), model.getName(), model.getProfilePhoto());
                final String currentUserID = FirebaseAuth.getInstance().getCurrentUser().getUid();
                final String otherUserID = getRef(position).getKey();

                System.out.println(currentUserID + " === " + otherUserID + "\n");
                if (currentUserID != otherUserID) {
                    holder.mView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            DatabaseReference currentUserDB = FirebaseDatabase.getInstance().getReference().child("Users").child(userID);
                            Map newPost = new HashMap();
                            newPost.put("otherUserID", otherUserID);
                            currentUserDB.updateChildren(newPost);
                            startActivity(new Intent(SearchActivity.this, OthersProfileActivity.class));
                        }
                    });
                }
                else {
                    holder.mView.setVisibility(View.GONE);
                }
            }
            @NonNull
            @Override
            public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.users_layout, parent, false);
                return new UsersViewHolder(v);
            }
        };

        adapter.startListening();
        rvSearchUsers.setAdapter(adapter);
yxyvkwin

yxyvkwin1#

不要使用 == 对于像这样的对象 String . 而是使用 .equals() . 阅读更多。

相关问题