在阅读之前,我是一个试图学习 android 开发的新手,所以请不要对我太苛刻。
我有这个实时数据库 firebase :
我正在尝试检查输入的电子邮件是否存在,我尝试了一种方法,但它对我不起作用。
我试过这个方法:
private boolean checkIfExistes() {
reference.child("Users").orderByChild("email").equalTo(Email.getText().toString()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists())
CheckExists =true;
else
CheckExists =false;
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
if (CheckExists)
return true;
else
return false;
}
即使电子邮件存在,它也总是返回 false。请帮助。
试试这个:
boolean CheckExists =false; //declare and assign default value in global scope
reference.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> userChildren = dataSnapshot.getChildren();
for (DataSnapshot user: userChildren) {
User u = user.getValue(User.class); //make a model User with necessary fields
if(u.email.equalsIgnoreCase(Email.getText().toString())){
CheckExists =true;
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句