簡體   English   中英

使用存儲在 firebase 實時數據庫中的電子郵件登錄

[英]Login using email stored in firebase realtime database

我正在開發一個 android 應用程序,我在其中實現了 Firebase 實時數據庫。 現在我想使用存儲在數據庫中的電子郵件 ID 和密碼登錄。 我知道 firebase auth 可用於身份驗證,但我想像在 Sql 或我的 sql 中一樣使用實時數據庫登錄。

數據庫

我做了這個。 首先,我從數據庫中獲取特定電子郵件 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 db 中。 當用戶輸入用戶名和密碼時,您應該在 userAuth 中使用 username 讀取 userId。 檢索到 userID 后,使用它訪問 userList 以獲取用戶詳細信息。 這是您檢查輸入的密碼的地方。

{
  "userList": {
    "userA": {
      "password": "abc123"
    },
    "userB": {
      "password": "abc123"
    }
  }
}

或者您可以像這樣驗證您的用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM