Я создаю приложение с использованием Firebase, где я проверяю наличие определенных значений в узле, и если оно присутствует, я просто добавляю к нему вместо создания нового узла.
Но когда я пытаюсь реализовать то же самое, он фактически реализует бесконечный запрос и заполнение базы данных
Для простоты я включаю ту часть кода, которая вызывает проблемы:
Здесь выражение else
означает, что узел данных уже присутствует в добавляемой мной базе данных.
else {
user u=new user(SharedPrefManager.getmInstnce(ChatList.this).getUsername(),SharedPrefManager.getmInstnce(ChatList.this).getmail());
for(int l=0;l<grpar.size();l++){
if(grpar.get(l).getName().equalsIgnoreCase(grpname)){
index=l;
break;
}
}
Log.i("Checking QUERY","Value exist!!!! in "+ index);
grpar.get(index).getGrpMembers().add(u);
Group grp=new Group(grpname,grpar.get(index).getGrpMembers());
grpRef.push().setValue(grp).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful())
{
Intent intent = new Intent(ChatList.this,MainActivity.class);
intent.putExtra("Id","none");
intent.putExtra("Name",grpname);
startActivity(intent);
}
else
{
Toast.makeText(ChatList.this,"Data Not Added Completely",Toast.LENGTH_SHORT).show();
}
}
});
}
С того момента, как я применил следующую логику, он начал работать ненормально:
for(int l=0;l<grpar.size();l++){
if(grpar.get(l).getName().equalsIgnoreCase(grpname)){
index=l;
break;
}
}
Я также присоединяю структуру БД:
Я не могу понять, где ошибка! Любая помощь приветствуется