如何按名称查找现有节点,并将一些额外值附加到Firebase数据库中的现有ArrayList中?

时间:2019-03-06 13:15:53

标签: android json firebase firebase-realtime-database

我正在使用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;
    }
}

我还附加了数据库结构:

I am also attaching the DB structure-

我不知道错误在哪里!感谢您的帮助

0 个答案:

没有答案