我正在使用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;
}
}
我还附加了数据库结构:
我不知道错误在哪里!感谢您的帮助