因此,我尝试使用Firebase在Android Studio上的Java中为我的应用创建登录屏幕。目前,在创建帐户时,我这样做:
if (password.getText().toString().equals(confirm.getText().toString())) {
Map map = new HashMap<String, String>();
map.put(username.getText().toString(), password.getText().toString());
myFirebaseRef.push().setValue(map);
error.setText("Account created!");
}
else {
error.setText("Passwords do not match");
}
但它会将数据保存在我的Firebase上 this
所以现在在我的登录屏幕上,一旦用户输入用户名,我想在我的Firebase中搜索用户名,并确保它存在,然后查看密码是否与他们输入的内容相符。我该怎么做?谢谢!
答案 0 :(得分:1)
正如Amy已经说过:无论你做什么,立即将代码更改为停止以纯文本格式存储密码。这是一个非常糟糕的做法。通常,身份验证最好留给专用工具,例如Firebase Authentication。
除此之外,您还需要更改存储用户的方式。您似乎用他们的名字识别用户,将他们存储在他们的名下:
Map map = new HashMap<String, String>();
map.put(username.getText().toString(), password.getText().toString());
myFirebaseRef.updateChildren(map);
现在,您可以按名称查找用户:
Firebase userRef = myFirebaseRef.child(username.getText().toString());
userRef.addListenerForSingleValueEvent(...
有关详情,请参阅Firebase guide on reading data。