2017-05-03 59 views
0

我想在登錄屏幕上匹配ID和密碼,ID是根節點的子項,密碼和其他子項是子項。但是,我的代碼將活動視爲行爲不當,而不是執行任務。 Database Structure 代碼如下:從Firebase中檢索數據,它是根節點子項的子項

private void login(){ 
    final String id1 = id.getText().toString().trim(); 
    final String pwd1 = password.getText().toString().trim(); 
    if (TextUtils.isEmpty(id1)){ 
     Toast.makeText(this, "Enter ID", Toast.LENGTH_SHORT).show(); 
     return; 
    } 
    if (TextUtils.isEmpty(pwd1)){ 
     Toast.makeText(this, "Enter Password", Toast.LENGTH_SHORT).show(); 
     return; 
    } 
    final ProgressDialog progressDialog = new ProgressDialog(User_Login.this); 
    progressDialog.setMessage("Logging in.."); 
    progressDialog.show(); 

    databaseReference= FirebaseDatabase.getInstance().getReference().child("user"); 
    DatabaseReference databaseReference1=databaseReference.child(id1); 
    databaseReference1.child(pwd1).addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if(pwd1.equals(dataSnapshot.child("password").getValue().toString())){ 
       progressDialog.dismiss(); 
       finish(); 
       Toast.makeText(User_Login.this, "Login Successful", Toast.LENGTH_SHORT).show(); 
       startActivity(new Intent(User_Login.this,Services.class)); 
      } 
      else{ 
       progressDialog.dismiss(); 
       Toast.makeText(User_Login.this, "Wrong Id/Password", Toast.LENGTH_SHORT).show(); 
      } 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

} 
+0

請向我們提供了數據庫結構 –

+0

@AlexMamo當然,我添加了鏈接 –

回答

0

請使用此代碼:

databaseReference = FirebaseDatabase.getInstance().getReference().child("user").child(id1); 
databaseReference.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     if(pwd1.equals(dataSnapshot.child("password").getValue().toString())){ 
      progressDialog.dismiss(); 
      finish(); 
      Toast.makeText(User_Login.this, "Login Successful", Toast.LENGTH_SHORT).show(); 
      startActivity(new Intent(User_Login.this,Services.class)); 
     } else { 
      progressDialog.dismiss(); 
      Toast.makeText(User_Login.this, "Wrong Id/Password", Toast.LENGTH_SHORT).show(); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 

的問題是,您要添加額外的兒童,child(pwd1)是沒有必要的。

希望它有幫助。

+0

但是當輸入錯誤密碼的ID我的活動仍在行爲不端。 ELSE部分有什麼問題? –

+0

當你輸入錯誤的密碼ID時,你用'仍然行事不端'是什麼意思?發生什麼事? –

+0

當我沒有輸入正確的憑證時,運行的進度對話框會以慢速閃爍的白色屏幕結束,並且以前的活動打開,並且不會顯示Toast。 –

相關問題