我正在制作一个有群组的聊天应用程序。管理员选择谁在那里,其他人看不到它。我可以藏起来但下方的一个显示上方的一个。因此,我决定从回收者视图中将其删除。但我不想将其从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个声誉,因此图像为: