Я хочу сделать представление списка, но при условии, если текущий идентификатор пользователя существует в Членах, затем отобразите имя группы, и это похоже на тест в скриншоте
Представление списка работает, но отображает все группы, и мне нужно отобразить только те группы, членом которых является текущий пользователь.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
groupFragmentView = inflater.inflate(R.layout.fragment_groups, container, false);
GroupRef = FirebaseDatabase.getInstance().getReference().child("Groups");
mGroupsList = (ListView) groupFragmentView.findViewById(R.id.list_view);
final ArrayAdapter arrayAdaptor = new ArrayAdapter<String>(getContext(),android.R.layout.simple_list_item_1,mGroups);
mGroupsList.setAdapter(arrayAdaptor);
mGroupsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id)
{
String currentGroupName = adapterView.getItemAtPosition(position).toString();
Intent groupChatIntent=new Intent(getContext(),GroupChatActivity.class);
groupChatIntent.putExtra("groupName",currentGroupName);
startActivity(groupChatIntent);
}
});
GroupRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
String value = dataSnapshot.getKey();
String currentUser= mAuth.getUid();
UserRef = GroupRef.child(value).child("Group Details").orderByChild("Members").equalTo(currentUser);
mGroups.add(value);
arrayAdaptor.notifyDataSetChanged();
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});