首页 文章

如何检查火灾中是否存在儿童? [重复]

提问于
浏览
5

这个问题在这里已有答案:

我有一个firebase,它有一个名为users的节点 . 用户提供用户名,我想检查该用户名是否已作为用户节点的子节点存在 . 这是我目前正在尝试的代码 . 该平台是android .

String myUsername = userNameInputET.getText().toString();
if(mUsersRef.child(myUsername) == null) {
//do stuff
} else {
//do other stuff
}

即使具有给定用户名的子节点不存在,此代码也无法正常运行 . 该怎么办?

4 回答

  • 0
    String myUsername="User";
    
        if (root.child(myUsername).getRoot() == null) {
    
        } else {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("user", "");
            root.updateChildren(map);
    
  • -3

    你好检查一下https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot

    // Test for the existence of certain keys within a DataSnapshot
    var ref = firebase.database().ref("users/ada");
    ref.once("value")
      .then(function(snapshot) {
        var a = snapshot.exists();  // true
        var b = snapshot.child("name").exists(); // true
        var c = snapshot.child("name/first").exists(); // true
        var d = snapshot.child("name/middle").exists(); // false
      });
    
  • 0

    在这个问题上浪费了两个小时 . 尝试了一切,但没有一个解决方案奏效 . 我使用了firebase onChildAdded的数据读取代码来获取用户数据,然后使用if else条件确定它 .

    在onCreate

    mFirebaseDatabase=FirebaseDatabase.getInstance();
    mMessagesDatabaseReference=mFirebaseDatabase.getReference().child("user").child(root).child(id);
        attachDatabaseReadListener();
    

    监听方法

    private void attachDatabaseReadListener() {
        if ( mChildEventListener == null) {
            mChildEventListener = new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                    User u = dataSnapshot.getValue(User.class);
                    mUser=u.GetUser();
                    mEmail=u.GetEmailId();
                    Toast.makeText(getApplicationContext(),"here"+mUser,Toast.LENGTH_SHORT).show();
                }
                public void onChildChanged(DataSnapshot dataSnapshot, String s) {}
                public void onChildRemoved(DataSnapshot dataSnapshot) {}
                public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
                public void onCancelled(DatabaseError databaseError) {}
            };
            mMessagesDatabaseReference.addChildEventListener( mChildEventListener);
    
        }
    }
    

    条件检查,它可以是任何东西 .

    if(mUser==null&&mEmail==null) {
          //do something here
      }
     else
     {
     //do nothing
     }
    

    Note: some time is required to execute on child added so add proper delay 我只有一个节点,所以这段代码对我来说非常合适 . 如果有其他解决方案或更简单的解决方案,请告诉我们 .

    如果根节点不存在,那么它也将显示null,因此在部署应用程序推送根节点之前请记住这一点 .

  • 0

    我相信您需要将代码更改为

    String myUsername = userNameInputET.getText().toString();
    if(mUsersRef.child(myUsername).getValue() == null) {
       //do stuff
    } else {
       //do other stuff
    }
    

相关问题