使用存储在firebase实时数据库中的电子邮件登录

时间:2017-07-17 05:49:29

标签: android json firebase firebase-realtime-database

我正在开发一个Android应用程序,我在其中实现了Firebase实时数据库。现在我想通过存储在数据库中的电子邮件ID和密码登录。我知道firebase auth可用于身份验证,但我想使用实时数据库登录,就像我们在Sql或我的sql中一样。

database

2 个答案:

答案 0 :(得分:5)

我做到了这一点。首先,我从数据库中获取特定电子邮件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) {

        }
    });

谢谢..

答案 1 :(得分:1)

我假设您知道如何使用ValueEventListener,onDataChange方法和Datasnapshot。

如上所述,您希望在SQL或MySQL中执行此操作。因此,我将使用用户名和密码而不是使用电子邮件。

您可以在不使用Firebase身份验证的情况下对用户进行身份验证。但是,建议不要将其用于数据库安全性。

    <?php
echo '<img src="images/echo $row["image"];" class="img-responsive" /><br/>'; 
echo '<h4 class="text-info"> echo $row["name"]; </h4>';
?>

如上所示,我已在firebase db中保存了userName和userId。当用户输入用户名和密码时,您应该使用userAuth中的用户名来读取userId。检索到userID后,使用它来访问userList以获取用户详细信息。您可以在此处检查输入的密码。

{
  "userList": {
    "JRHTHaIsjNPLXOQivY": {
      "userName": "userA",
      "password": "abc123"
    },
    "JRHTHaKuIFIhnj02kE": {
      "userName": "userB",
      "password": "abc123"
    }
  },
  "userAuth": {
    "userA": "JRHTHaIsjNPLXOQivY",
    "userB": "JRHTHaKuIFIhnj02kE"
  }
}

或者您可以像这样验证您的用户。