我正在开发一个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. 在SQL数据库中存储电子邮件
- 5. 如何使用Firebase电子邮件登录一个片段?
- 6. Android Firebase使用电子邮件和密码登录
- 7. Gmail使用Codeigniter电子邮件库时无法登录
- 8. 在存储在数据库中的自动时间发送电子邮件
- 9. 用于存储亿次电子邮件的数据库模式
- 10. Firebase实时数据库验证用户名和电子邮件地址
- 11. 如何将ID和电子邮件存储到数据库中?
- 12. 从数据库中存储和检索电子邮件正文
- 13. 当记录添加到Firebase数据库时发送电子邮件
- 14. 使用谷歌OAuth2.0从Gmail电子邮件和密码存储在数据库
- 15. Firebase规则 - 首次登录时不能存储用户数据
- 16. 存储电子邮件密码数据库
- 17. 如何修复我的电子邮件登录与Angular和Firebase?
- 18. 收件箱邮件存储在数据库中或通过真实电子邮件系统?
- 19. 如何从电子邮件服务器访问电子邮件并将它们存储在数据库中
- 20. 如何使用Firebase使用电子邮件和密码进行简单登录
- 21. 使用Firebase的用户名简单登录(电子邮件/密码)
- 22. 电子邮件ID存储
- 23. 用“+”号登录电子邮件地址
- 24. sfDoctrineGuardPlugin:用电子邮件登录
- 25. Devise Gem:只用电子邮件登录
- 26. 发送保存在数据库中的多个电子邮件
- 27. Firebase如何验证要登录的电子邮件属于数据库中的哪个类别?
- 28. Iam未获取登录用户的电子邮件插入数据库
- 29. 在MVC中使用电子邮件登录5
- 30. 如何在zend中使用电子邮件地址登录?
感谢哥们!拯救了我的一天:) – Mohammad
欢迎.. :) @Mhamhammad –