2017-07-17 81 views
0

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

database

回答

2

我做到了。首先,我從數據庫中獲取特定電子郵件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) { 

     } 
    }); 

謝謝..

+0

感謝哥們!拯救了我的一天:) – Mohammad

+0

歡迎.. :) @Mhamhammad –

1

我假設你知道如何使用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" 
    } 
    } 
} 

或者你也可以像這樣認證你的用戶。

+0

好,我得到它,但你能添加代碼爲如何我可以做這些東西.. –

+1

@UpendraShah至於代碼,你可以檢查firebase文檔如何從數據庫中存儲和檢索它。 https://firebase.google.com/docs/database/android/read-and-write – UmarZaii

+0

感謝您的回答。我通過我的方式得到解決方案.. –

相關問題