firebase中的用户数据:
用户类:
public User(String mName, String mEmail, String password, int mAge, String mGender) {
this.mName = mName;
this.mEmail = mEmail;
this.mAge = mAge;
this.mPassword=password;
this.mGender = mGender;
}
public String getPassword() {
return mPassword;
}
public String getEmail() {
return mEmail;
}
检索用户表:
@Override
protected void onStart() {
super.onStart();
mDataBase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mUsers.clear();
for (DataSnapshot userSnapshot : dataSnapshot.getChildren()) {
mUser = userSnapshot.getValue(User.class);
mUsers.add(mUser);
}
}
然后我尝试使用输入验证电子邮件和密码:
mEmail = (String) mEmailEt.getText().toString().trim().toLowerCase();
mPassword = (String) mPwdEt.getText().toString().trim().toLowerCase();
mLoginButton = findViewById(R.id.loginBtn);
mLoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(validate(mEmail, mPassword) == 1){
Intent intent = new Intent(getApplicationContext(),MainPage.class);
startActivity(intent);
}
else{
Toast.makeText(getApplicationContext(),"Login Failed", Toast.LENGTH_LONG).show();
}
}
});
public int validate(String email, String pwd) {
for (User user : mUsers) {
if (email.equals(user.getEmail().trim().toLowerCase()) && pwd.equals(user.getPassword().trim().toLowerCase())){
return 1;
}
}
return 0;
}
问题是我成功检索了数据,但我不知道为什么比较总是返回0.我在这里看不出任何错误。任何答案都会有很大的帮助。谢谢!