如何从孩子那里获得特定的孩子价值?

时间:2017-04-03 15:42:04

标签: android firebase firebase-realtime-database

我编写此代码以获取输入用户名的用户的值,并且我想检查他的密码:

MyDatabase.child("USERS").orderByChild("username").equalTo(Username.getText().toString())
  .addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot child :dataSnapshot.getChildren()){
            Log.i("Password",child.getValue().toString());
        }

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});

My database

现在我想访问密码字段并检查用户是否输入了正确的密码。

2 个答案:

答案 0 :(得分:0)

有两种方法可以实现这一目标。第一个是在创建帐户时不让用户留空EditText。第二是验证是否dataSnapshot.exists()。希望它有所帮助!

答案 1 :(得分:0)

这将有效:

MyDatabase.child("USERS")      
  .orderByChild("username").equalTo(Username.getText().toString())
  .addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot child :dataSnapshot.getChildren()){
            Log.i("Password",child.child("password").getValue().toString());
        }

    }

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

变化:

  1. child.child("password").getValue()
  2. 请勿忽略onCancelled()