检查Firebase子项是否具有特定值

时间:2018-11-13 11:23:08

标签: java android firebase firebase-realtime-database

我有一个基于Firebase数据库的应用聊天,我想知道是否已经存储了特定的值。

Database structure

根据上述结构,如何防止将两个相等的值(红色)插入同一个孩子(蓝色)?

编辑

我解决了以下问题: 1)我通过唯一的用户名更改了每个节点的推送值; 2)我用下面的代码检查了重复的值:

FirebaseDatabase.getInstance().getReference().child("friend").child(value_in_blue)
        .addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if(!dataSnapshot.hasChild(username)) {
                    //value does not exists
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });

谢谢Frank Van Puffelen和Jins Lukose在这个问题上为我提供了指导。

2 个答案:

答案 0 :(得分:1)

Firebase提供了 hasChild()方法来检查是否存在儿童肺炎儿童。您可以参考link了解更多详细信息

答案 1 :(得分:0)

尝试一下

fdbRefer.child("give your value").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.exist() {
//comes here if exit
}
else {
//if not exist
}
}
});