如何从FirebaseRecyclerView中删除项目而不实际在Firebase中删除项目

时间:2019-07-31 15:49:15

标签: android firebase-realtime-database android-recyclerview recycler-adapter

我正在制作一个有群组的聊天应用程序。管理员选择谁在那里,其他人看不到它。我可以藏起来但下方的一个显示上方的一个。因此,我决定从回收者视图中将其删除。但我不想将其从Firebase中删除,因为该组应该对该组中的其他人可见。

我已经搜索并搜索了StackOverflow,似乎没人遇到我的问题。尝试了其他种类的东西,但没有解决。有什么办法可以删除它?还是通过Firebase删除它的唯一选择?

编辑:

                new FirebaseRecyclerOptions.Builder<Groups>()
                        .setQuery(GroupsRef, Groups.class)
                        .build();



        final FirebaseRecyclerAdapter<Groups, groupsViewHolder>
                adapter = new FirebaseRecyclerAdapter<Groups, groupsViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull final groupsViewHolder groupsViewHolder, final int i, @NonNull Groups groups)
            {
                final String string = getRef(i).getKey();


                if (string != null) {
                    GroupsRef
                            .child(string)
                            .child("Users")
                            .addValueEventListener(new ValueEventListener() {
                                @Override
                                public void onDataChange(@NonNull DataSnapshot dataSnapshot)
                                {
                                    if (dataSnapshot.exists())
                                    {
                                        if (dataSnapshot.hasChild(UID))
                                        {


                                            groupsViewHolder.itemView.setVisibility(View.VISIBLE);
                                            GroupsRef
                                                    .child(string)
                                                    .child("Group info").addValueEventListener(new ValueEventListener() {
                                                @Override
                                                public void onDataChange(@NonNull DataSnapshot dataSnapshot)
                                                {
                                                    String name = Objects.requireNonNull(dataSnapshot.child("group name").getValue()).toString();
                                                    groupsViewHolder.Username.setText(name);

                                                    if (dataSnapshot.hasChild("group image")) {
                                                        String image = Objects.requireNonNull(dataSnapshot.child("group image").getValue()).toString();
                                                        Picasso.get().load(image).placeholder(R.drawable.profile_image).into(groupsViewHolder.profileImageView);
                                                    }

                                                }

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

                                                }
                                            });

                                            groupsViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                                                @Override
                                                public void onClick(View v)
                                                {
                                                    Intent mainIntent = new Intent(getContext(), GroupChatActivity.class);
                                                    mainIntent.putExtra("groupUID", string);
                                                    startActivity(mainIntent);
                                                }
                                            });
                                        }
                                        else {
                                            groupsViewHolder.itemView.setVisibility(View.INVISIBLE);
                                            notifyItemRemoved(i);
                                        }
                                    }
                                }

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

                                }
                            });
                }


            }

            @NonNull
            @Override
            public groupsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
            {





                    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.groups, parent, false);

                    return new groupsViewHolder(view);




            }
        };

        myRecyclerList.setAdapter(adapter);
        adapter.startListening();

        GroupsRef

                .addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot)
                    {

                    }

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

                    }
                });

这就是寻找小组成员的方式。 here 这就是查找不在组中的人的方式。 here

对不起,因为链接有10条声誉来发布图片

编辑: 我现在有10个声誉,因此图像为:

person in the group

person not in group

0 个答案:

没有答案