Android:比较输入和从firebase检索的数据之间的数据

时间:2018-05-20 03:15:33

标签: android firebase firebase-realtime-database

firebase中的用户数据:

enter image description here

用户类:

    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.我在这里看不出任何错误。任何答案都会有很大的帮助。谢谢!

0 个答案:

没有答案
相关问题