Java 检查firebase中是否已存在密钥

Java 检查firebase中是否已存在密钥,java,android,firebase,Java,Android,Firebase,我有一些与我的数据库相关的问题,文档看起来很混乱,我不知道如何解决,基本上我在firebase中有我的用户数据,我想看看我的用户中是否有一些id我已经有了关键用户名如果是,我想用我表单的一些数据更新,如果不是,我想根据我的表单添加一个值,但当我想知道如何检查id是否已经存在时,我做了以下操作: auth = FirebaseAuth.getInstance(); database = FirebaseDatabase.getInstance(); myRef

我有一些与我的数据库相关的问题,文档看起来很混乱,我不知道如何解决,基本上我在firebase中有我的用户数据,我想看看我的用户中是否有一些id我已经有了关键用户名如果是,我想用我表单的一些数据更新,如果不是,我想根据我的表单添加一个值,但当我想知道如何检查id是否已经存在时,我做了以下操作:

  auth = FirebaseAuth.getInstance();
        database = FirebaseDatabase.getInstance();
        myRef = database.getReference();
        userId = auth.getCurrentUser().getUid();
        user =  myRef.child("Users").child(userId);
        Log.d("test1",String.valueOf(user.child("age").getKey()));
        if(user.child("username").co){
            usernameTxt.setText(user.child("username").toString());
        }
        if(user.child("age") != -1){
            usernameTxt.setText(user.child("age").toString());
        }
试试这个

final FirebaseAuth auth = FirebaseAuth.getInstance();
    DatabaseReference mDatabase=FirebaseDatabase.getInstance().getReference().child("Users").child(auth.getCurrentUser().getUid());
    mdatabase.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if(dataSnapshot.hasChild("username")){
                //IT EXISTS
            }
            else{
                //IT DOESNT EXISTS
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
试试这个

final FirebaseAuth auth = FirebaseAuth.getInstance();
    DatabaseReference mDatabase=FirebaseDatabase.getInstance().getReference().child("Users").child(auth.getCurrentUser().getUid());
    mdatabase.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if(dataSnapshot.hasChild("username")){
                //IT EXISTS
            }
            else{
                //IT DOESNT EXISTS
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });


检查这些数据快照是什么,我不太明白docs@Filipe你能发布你的示例数据库树吗?更新的数据更新我不太清楚我需要做什么基本上我想插入用户名(如果不存在)并更新(如果存在)检查这些是什么数据快照,我不太明白这句话docs@Filipe你能发布你的示例数据库树吗?更新的数据upi我不太清楚我需要做什么基本上我想在用户名不存在时插入用户名,如果存在则更新我觉得我几乎做到了,但是我如何检索快照的单个值?我这样做了:dataSnapshot.child(“username”).getValue(),用logcat检查了它,它给了我这个::sy您必须使用getValue(String.class)强制转换它;你测试过我的答案吗?是的,我做了,我会接受答案,最后一个问题,我在一个单独的文件中有一个用户模型,我用它保存数据,我看到了一些例子,他们在模型中使用dataSnapshot,在这种情况下,我能做它来做更好的方法吗?'你想得到数据还是写它?我觉得我几乎做到了,但如何检索快照的单个值?我这样做了:dataSnapshot.child(“username”).getValue(),用logcat检查了它,它给了我这个::sy您必须使用getValue(String.class)强制转换它;你测试过我的答案吗?是的,我做了,我会接受答案,最后一个问题,我在一个单独的文件中有一个用户模型,我用它保存数据,我看到了一些例子,他们在模型中使用dataSnapshot,在这种情况下,我可以这样做来做更好的方法吗?'你想获取数据还是写入数据?