我正在开发一个android应用程序,其中实现了Firebase实时数据库。现在我想通过电子邮件ID和密码登录使用存储在数据库中。我知道firebase身份验证可用于身份验证,但我想使用实时数据库登录,就像我们在Sql或我的SQL中所做的那样。使用存储在firebase实时数据库中的电子邮件登录
回答
我做到了。首先,我从数据库中获取特定电子邮件ID的数据,比比较其密码,并指定相关的功能做..
Query query = databaseReference.child("users").orderByChild("email").equalTo(txvUsername.getText().toString().trim());
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
// dataSnapshot is the "issue" node with all children with id 0
for (DataSnapshot user : dataSnapshot.getChildren()) {
// do something with the individual "issues"
UsersBean usersBean = user.getValue(UsersBean.class);
if (usersBean.password.equals(txvPassword.getText().toString().trim())) {
Intent intent = new Intent(context, MainActivity.class);
startActivity(intent);
} else {
Toast.makeText(context, "Password is wrong", Toast.LENGTH_LONG).show();
}
}
} else {
Toast.makeText(context, "User not found", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
谢谢..
我假设你知道如何使用ValueEventListener,onDataChange方法和Datasnapshot。
如上所述,您希望像SQL或MySQL中那样做。因此,我不会使用电子邮件,而是使用用户名和密码。
您可以在不使用Firebase身份验证的情况下对您的用户进行身份验证。但是,这不建议用于数据库安全。
{
"userList": {
"JRHTHaIsjNPLXOQivY": {
"userName": "userA",
"password": "abc123"
},
"JRHTHaKuIFIhnj02kE": {
"userName": "userB",
"password": "abc123"
}
},
"userAuth": {
"userA": "JRHTHaIsjNPLXOQivY",
"userB": "JRHTHaKuIFIhnj02kE"
}
}
正如您在上面看到的,我已将userName和userId保存在firebase数据库中。当用户输入用户名和密码时,应该使用userAuth中的用户名来读取userId。一旦获取了用户ID,就可以使用它来访问用户详细信息的userList。这是您检查输入密码的地方。
{
"userList": {
"userA": {
"password": "abc123"
},
"userB": {
"password": "abc123"
}
}
}
或者你也可以像这样认证你的用户。
好,我得到它,但你能添加代码为如何我可以做这些东西.. –
@UpendraShah至于代码,你可以检查firebase文档如何从数据库中存储和检索它。 https://firebase.google.com/docs/database/android/read-and-write – UmarZaii
感谢您的回答。我通过我的方式得到解决方案.. –
- 1. Swift 3 Firebase用户认证/使用电子邮件密码登录数据库
- 2. 用户登录后,Firebase数据库中的评论电子邮件为空
- 3. 使用Zend存储数据库中加密电子邮件的最佳实践
- 4. Firebase OSX简单的用电子邮件登录/通过奇数
- 5. 在SQL数据库中存储电子邮件
- 6. Android Firebase使用电子邮件和密码登录
- 7. 如何使用Firebase电子邮件登录一个片段?
- 8. Gmail使用Codeigniter电子邮件库时无法登录
- 9. 使用存储在数据库中的电子邮件添加frineds
- 10. 离子-firebase电子邮件和密码登录Android中
- 11. 用于存储亿次电子邮件的数据库模式
- 12. 在存储在数据库中的自动时间发送电子邮件
- 13. 处理和存储数据库中的电子邮件
- 14. Firebase实时数据库验证用户名和电子邮件地址
- 15. 如何将ID和电子邮件存储到数据库中?
- 16. 从数据库中存储和检索电子邮件正文
- 17. Firebase Android-Studio当登录电子邮件无法将数据写入数据库时
- 18. 当记录添加到Firebase数据库时发送电子邮件
- 19. Firebase规则 - 首次登录时不能存储用户数据
- 20. 使用谷歌OAuth2.0从Gmail电子邮件和密码存储在数据库
- 21. Firebase电子邮件+密码登录事件未触发
- 22. 从我的收件箱中存储的电子邮件创建电子邮件数据库
- 23. 如何修复我的电子邮件登录与Angular和Firebase?
- 24. Facebook登录:使电子邮件强制
- 25. 存储电子邮件密码数据库
- 26. 如何使用Firebase使用电子邮件和密码进行简单登录
- 27. 收件箱邮件存储在数据库中或通过真实电子邮件系统?
- 28. 使用Firebase的用户名简单登录(电子邮件/密码)
- 29. 如何从电子邮件服务器访问电子邮件并将它们存储在数据库中
- 30. 通过App Engine数据存储中的用户电子邮件过滤记录?
感谢哥们!拯救了我的一天:) – Mohammad
欢迎.. :) @Mhamhammad –