android - Android:比较输入和从firebase检索的数据之间的数据
问题描述
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。我在这里看不到任何错误。任何答案都会有很大帮助。谢谢!
解决方案
推荐阅读
- odata - OLINGO ODATA V2 客户端
- java - Anylogic - 如何在道路交通模拟中设置交通信号的先发制人条件
- javascript - 如何仅使用 vanilla JavaScript 和 Node-API 将多个 div 元素包装在另一个元素节点周围?
- github - 在 PR 搜索中否定作者的 GitHub 搜索查询
- flutter - 如何将 utf8 转换为 dart 中的文本
- firebase - 使用 Firebase Admin SDK 生成电子邮件操作链接时,如何为每个 Identity Platform 租户使用唯一的操作 URL?
- elasticsearch - 如何在 K8S 的 Elasticsearch 集群中为不同的 Pod 配置不同的存储挂载?
- solr - 提交对 Solr 索引的更改时出现状态 500 错误
- json - 使用 VBA 将 json 解析为 MS 访问表时出错
- c - C语言如何从多个字符串中选择特定字符串