【问题标题】:Check if a key already exist in firebase检查firebase中是否已存在密钥
【发布时间】:2017-04-12 13:55:01
【问题描述】:

我有一些与我的数据库相关的问题,文档似乎很混乱有一些 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());
        }

【问题讨论】:

标签: java android firebase


【解决方案1】:

试试这个

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) {

        }
    });

【讨论】:

  • 我觉得我几乎做到了,但我怎样才能检索快照的单个值?我这样做了:dataSnapshot.child("username").getValue(),用 logcat 检查了它,它给了我这个:friendlymanager-3b7a2.firebaseio.com/Users/…:S
  • 你必须使用 getValue(String.class);
  • 你测试过我的答案了吗?
  • 是的,我做到了,我会接受答案,最后一个问题,我在单独的文件中有一个用户模型,我使用它保存数据,我看到了一些使用 dataSnapshot 的示例模型,在这种情况下,我可以做一个更好的方法吗?'
  • 你要获取数据还是写入数据?
猜你喜欢
  • 1970-01-01
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
  • 2013-07-12
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多