Android 如何为不同的用户类型处理两个登录表单?
我的应用程序有两种类型的用户,职员和学生。职员用户的登录页面与学生的不同。问题是,如果我在员工的登录页面中输入学生的电子邮件id和密码,它就会被登录,但情况应该不是这样。此外,我想澄清的是,工作人员不能注册该应用程序。他们只能使用提供给他们的电子邮件id和密码登录,这样学生就不能注册为教职员工。此电子邮件id和密码是在身份验证控制台中手动创建的。但是auth没有针对不同用户的任何规范,因此,即使存储在auth中的学生的电子邮件和密码也会被员工登录页面接受。我不知道在这种情况下如何处理员工登录。感谢您的帮助 这是员工登录:Android 如何为不同的用户类型处理两个登录表单?,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我的应用程序有两种类型的用户,职员和学生。职员用户的登录页面与学生的不同。问题是,如果我在员工的登录页面中输入学生的电子邮件id和密码,它就会被登录,但情况应该不是这样。此外,我想澄清的是,工作人员不能注册该应用程序。他们只能使用提供给他们的电子邮件id和密码登录,这样学生就不能注册为教职员工。此电子邮件id和密码是在身份验证控制台中手动创建的。但是auth没有针对不同用户的任何规范,因此,即使存储在auth中的学生的电子邮件和密码也会被员工登录页面接受。我不知道在这种情况下如何处理员工登录。感
mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful() ){
pd.dismiss();
Intent intent=new Intent(getActivity(),MainActivity.class);
startActivity(intent);
}else if(!task.isSuccessful()){
pd.dismiss();
Toast.makeText(getActivity(),"You are not allowed to login!",Toast.LENGTH_LONG).show();
}
}
});
mAuth.signwithEmailandPassword(email,pass).addOnCompleteListener(新OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
pd.解散();
Intent Intent=新的Intent(getActivity(),MainActivity.class);
星触觉(意向);
}如果(!task.issusccessful()),则为else{
pd.解散();
Toast.makeText(getActivity(),“您不允许登录!”,Toast.LENGTH\u LONG.show();
}
}
});
请在登录或注册应用程序时,您必须向工作人员提供唯一令牌
例如:-
员工登录:-
您的数据库中需要有两个不同的部分,
职员
和学生
。您的数据库应如下所示:
Firebase-root
|
--- Staff
| |
| --- staff1@email,com
| | |
| | --- //details
| |
| --- staff2@email,com
| |
| --- //details
|
--- Students
|
--- student1@email,com
| |
| --- //details
|
--- student2@email,com
|
--- //details
正如您可能看到的,用户之间的唯一标识符是电子邮件地址。然后对每个部分使用exists()
方法。如果用户是学生并且存在于Students
部分,则登录,否则显示消息
希望能有所帮助。感谢您的回复。你能告诉我怎么做吗?谢谢你的回复。问题是员工不允许注册。他们只能使用提供的电子邮件和密码登录。因此,有关他们的数据不会通过应用程序存储在数据库中,这与学生登录不同,在学生登录时,有关他们的详细信息也会添加到数据库中。我不知道如何手动将员工的数据存储在数据库中。然后不允许员工注册。在这种情况下,只需使用Firebase控制台添加内容。它使用起来非常简单。