ログイン画面で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) {
}
});
}
私はデータベース構造を提供してください –
@AlexMamo確かに、私はリンクを追加しました –