В приведенном ниже коде я делаю то, что я проверяю, существует ли EventsRef dataSnapshot или нет, если dataSnapshot существует = я получаю некоторые значения и сохраняю их в списке и передаю значения этого списка методу recyclerView, в этом он отображает эти значения, и моя проблема в том, что 2 пользователя в сети, и оба они отображают эти данные, если user1 удаляет эту ссылку из базы данных firebase, удаляя это событие, user2 получает ошибку и выходит из приложения. Я использовал прослушиватель дочерних событий, как в приведенном ниже коде, но он тоже не работает. и если я использую условия if else внутри дочернего прослушивателя событий внутри дочернего элемента Added, он также не работает, поэтому, пожалуйста, помогите мне решить обе эти проблемы. Заранее спасибо.
EventsRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
if (dataSnapshot.exists())
{
EventsRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
{
EventsRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
if (dataSnapshot.exists())
{
for (DataSnapshot ds : dataSnapshot.getChildren())
{
String eventId = ds.child("Eid").getValue(String.class);
String gender = ds.child("Gender").getValue(String.class);
String serveCount = ds.child("Serve").getValue(String.class);
list.add(eventId);
list2.add(gender);
list3.add(serveCount);
}
if (list.size() != 0)
{
for (int i = 0; i < list.size(); i++)
{
RecyclerView(list.get(i), list2.get(i), list3.get(i));
}
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot)
{
Toast.makeText(WorkerMyEventActivity.this, "Event removed", Toast.LENGTH_SHORT).show();
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
else
{
progressDialog.dismiss();
TextView txt = (TextView) findViewById(R.id.txt);
txt.setVisibility(View.VISIBLE);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
