0

我正在使用Firebase實時數據庫和註冊用戶詳細信息進行電子郵件和密碼驗證。獲取登錄來自Firebase實時數據庫的用戶詳細信息

現在,我可以成功地爲註冊用戶進行登錄和註銷。

現在,我必須得到當前登錄用戶的詳細信息。 我的數據庫結構如下:

{ 
    "UserInfo : " : { 
    "User ID : CxQNTJwnoleIk9M1iYMT9TsrJst2" : { 
     "-Kvb_W0YWX7M8dPF7Kn9" : { 
     "contact" : "8888888888", 
     "email" : "[email protected]", 
     "firstname" : "Vish", 
     "lastname" : "Mo", 
     "password" : "vish", 
     "strUserId" : "CxQNTJwnoleIk9M1iYMT9TsrJst2" 
     } 
    }, 
    "User ID : e1VCGeshWfOeptzzj4kP1POtmhk2" : { 
     "-KvbTM1Jtzn3r9V7II47" : { 
     "contact" : "9999999999", 
     "email" : "[email protected]", 
     "firstname" : "Ja", 
     "lastname" : "Mo", 
     "password" : "ja123#", 
     "strUserId" : "e1VCGeshWfOeptzzj4kP1POtmhk2" 
     } 
    } 
    } 
} 

例如,如果我已經登錄與電子郵件:[email protected]話,我想獲得該用戶的所有細節。

我該怎麼做?

雅,我可以得到電子郵件和顯示名稱如下:

FirebaseUser user = firebaseAuth.getCurrentUser(); 
txtUsername.setText("Welcome, " + user.getDisplayName() + "\n" + user.getEmail()); 

不過,我想從上面指定的數據庫結構的該用戶的所有細節。請引導我。謝謝。

+0

這是烏拉圭回合的實時數據庫的結構? –

+0

是的,它的firebase數據庫結構。 –

+1

這個結構看起來不太好。你可以閱讀這個。 https://firebase.google。com/docs/database/web/structure-data –

回答

1

當你這樣做,因爲這:

FirebaseUser user = firebaseAuth.getCurrentUser(); 
txtUsername.setText("Welcome, " + user.getDisplayName() + "\n" + user.getEmail()); 

這只是你的身份驗證領域,而不是你的數據庫。 作爲第一,你應該定義這些領域:

private DatabaseReference mDatabase; 
// ... 
mDatabase = FirebaseDatabase.getInstance().getReference(); 

在你的數據庫結構:

mDatabase.child("UserInfo : ").child("User ID : CxQNTJwnoleIk9M1iYMT9TsrJst2").child("-Kvb_W0YWX7M8dPF7Kn9").child("contact").getValue(); 

最後,通過簡單的字重構你的數據庫結構。用戶ID,電子郵件,密碼是多餘的,因爲可以由認證字段採取。

瞭解更多:https://firebase.google.com/docs/database/android/read-and-write

1

嘗試。希望這將工作

FirebaseUser user = firebaseAuth.getCurrentUser(); 
FirebaseDatabase.getInstance().getReference().child("UserInfo") 
    .child(user.getUid()) 
     .addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       if(dataSnapshot.exists()){ 
        UserClass curUser = dataSnapshot.getValue(); 
       } 

      } 
      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
0

,最後,我已經按以下步驟進行:

private void showData() { 
    progressDialog=new ProgressDialog(ProfileActivity.this); 
    progressDialog.setMessage("Getting data..."); 
    progressDialog.show(); 
    DatabaseReference mDatabase; 
    mDatabase = FirebaseDatabase.getInstance().getReference().child("UserInfo : ").child("User ID : " + firebaseAuth.getCurrentUser().getUid()); 
    ValueEventListener postListener = new ValueEventListener() { 

     @Override 
     public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) { 
      progressDialog.dismiss(); 
      User user = dataSnapshot.getValue(User.class); 
      txtFname.setText(user.getFirstname()); 
      txtLname.setText(user.getLastname()); 
      txtEmail.setText(user.getEmail()); 
      txtPassword.setText(user.getPassword()); 
      txtContact.setText(user.getContact()); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      progressDialog.dismiss(); 
      Toast.makeText(ProfileActivity.this, "Couldn't get data.", Toast.LENGTH_SHORT).show(); 
     } 
    }; 
    mDatabase.addValueEventListener(postListener); 
} 

創建的方法,其中第一次加載ProgressDialog,然後把數據庫refrence並初始化它到我DATABSE節點從獲取UUid FirebaseAuth實例。附ValueEventListener和內部方法:onDataChange,使用實例DataSnapshot爲我用戶類獲得價值。最後在我的textviews中顯示提取的數據。

謝謝大家的努力。 upvoted。

編輯: 我的新結構如下:

{ 
    "UserInfo : " : { 
    "User ID : I6wWODplkNXqAhSCRZsH6sjf4mM2" : { 
     "contact" : "9999999990", 
     "email" : "[email protected]", 
     "firstname" : "Dhaval", 
     "lastname" : "Patel", 
     "password" : "dhaval123", 
     "strUserId" : "I6wWODplkNXqAhSCRZsH6sjf4mM2" 
    }, 
    "User ID : Nf4kDsxAXYbclt16HahkzsYABWE3" : { 
     "contact" : "9999999999", 
     "email" : "[email protected]", 
     "firstname" : "Bandish", 
     "lastname" : "Mehta", 
     "password" : "bandish123", 
     "strUserId" : "Nf4kDsxAXYbclt16HahkzsYABWE3" 
    } 
} 
相關問題