这是我的Firebase数据库结构
STUDENT
ur14cs002
id:ur14cs002
pass:abc
ur14cs001
id:ur13cs001
pass:def
我必须检查用户的ID,例如当用户输入编辑文本时,需要检查数据库中是否存在该特定用户。 在代码下面,这就是我所做的,但这段代码根本不起作用。
EditText id = (EditText) findViewById(R.id.userEmail);
EditText password = (EditText) findViewById(R.id.userPassword);
database = FirebaseDatabase.getInstance();
String child = id.getText().toString();
String pass = password.getText().toString();
myRef = database.getReference("STUDENT").child(child);
myRef.orderByChild("id").equalTo(child).addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot){
if(dataSnapshot.exists() ){
Toast.makeText(getApplicationContext(),"PRESENT",Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});}}
答案 0 :(得分:1)
您的引用错误:
myRef = database.getReference("STUDENT").child(child);
在上面,dataSnapshot将是child
,例如id:ur14cs002
。所以当然它永远不会存在,因为dataSnapshot将是孩子(这是提供的id)。
你需要这样做: -
myRef = database.getReference().child("STUDENT");
这样,引用位于节点STUDENT
,然后orderByChild("id").equalTo(child)
将为您提供正确的结果。这里dataSnapshot将是(STUDENT)节点。