我的密码有问题。我要在登录页面中执行的操作是使用电子邮件/密码以admin身份登录,并且当“角色”等于admin时(另一个角色是Guest)。管理页面是MainActivity.class,访客页面是Home.class。有人可以帮我吗:)
这是我的代码:
private void onAuthSuccess(FirebaseUser user) {
DatabaseReference ref =
FirebaseDatabase.getInstance().getReference().child("users");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String role = ds.getKey();
DatabaseReference userKeyDatabase = FirebaseDatabase.getInstance().getReference().child("users");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot == null) {
Toast.makeText(getApplicationContext(), "****NULLL****", Toast.LENGTH_LONG).show();
} else if(dataSnapshot.child("role").getValue().equals("Admin")) {
startActivity(new Intent(SignInActivity.this, MainActivity.class));
finish();
}else{
startActivity(new Intent(SignInActivity.this, Home.class));
finish();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
userKeyDatabase.addListenerForSingleValueEvent(eventListener);
}}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
ref.addListenerForSingleValueEvent(valueEventListener);
}
我也不确定我的代码:(
答案 0 :(得分:0)
要check role of users
登录,您可以执行以下操作
FirebaseDatabase firebaseDatabase=FirebaseDatabase.getInstance();
DatabaseReference db=firebaseDatabase.getReference().child("users");
db.orderByChild("email").equalTo(email).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
if(dataSnapshot.exists()){
Log.d("user exits","usere hai");
String value =dataSnapshot.child("role").getValue().toString();
if(value.equals("Admin") && value != null){
startActivity(new Intent(SignInActivity.this, MainActivity.class));
finish();
}else{
startActivity(new Intent(SignInActivity.this, Home.class));
finish();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) { }
});