Android Can';如果用户属于列表,则不要停止Firebase登录

Android Can';如果用户属于列表,则不要停止Firebase登录,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我正在开发一个android应用程序,它有两种类型的用户(用户和供应商)。我试图阻止供应商在用户登录页面上登录。遗憾的是,在Firebase中无法区分不同类型的用户,因此我正在导入供应商电子邮件列表并检查输入的电子邮件是否符合该列表 如果是这样,那么他将不被允许登录否则他将登录。然而,由于某种原因,我的代码同时运行if和else语句,因此它会向他显示错误,并仍然让他登录。任何帮助都将不胜感激。这是我的密码 private void userLogin() { final S

我正在开发一个android应用程序,它有两种类型的用户(用户和供应商)。我试图阻止供应商在用户登录页面上登录。遗憾的是,在Firebase中无法区分不同类型的用户,因此我正在导入供应商电子邮件列表并检查输入的电子邮件是否符合该列表

如果是这样,那么他将不被允许登录否则他将登录。然而,由于某种原因,我的代码同时运行if和else语句,因此它会向他显示错误,并仍然让他登录。任何帮助都将不胜感激。这是我的密码

   private void userLogin() {
        final String email = editTextEmail.getText().toString().trim();
        final String password = editTextPassword.getText().toString().trim();


        //checking if email and passwords are empty
        if (TextUtils.isEmpty(email)) {
            Toast.makeText(this, "Please enter email", Toast.LENGTH_LONG).show();
            return;
        }

        if (TextUtils.isEmpty(password)) {
            Toast.makeText(this, "Please enter password", Toast.LENGTH_LONG).show();
            return;
        }

        mdata = new Firebase("https://uevent-f8ea1.firebaseio.com");



        //close this activity
    enter code here

        mdata.child("Doubleauthvendors").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot result) {
                List<String> lst = new ArrayList<String>(); // Result will be holded Here
                for (DataSnapshot dsp : result.getChildren()) {
                    lst.add(dsp.child("email").getValue().toString()); //add result into array list
                    Toast.makeText(getApplicationContext(),dsp.child("email").getValue().toString(),Toast.LENGTH_LONG).show();


                    if ((dsp.child("email").getValue().toString().equals(email))) {
                        new AlertDialog.Builder(Login.this)
                                .setTitle("Incorrect login credentials.")
                                .setMessage("The credentials you entered belong to another type of account. Would you like to try again?")

                                .setNegativeButton("Yes", new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {
                                        // continue with delete
                                        editTextEmail.setText("");
                                        editTextPassword.setText("");

                                    }
                                })

                                .setPositiveButton("No", new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {
                                        // continue with delete
                                        startActivity(new Intent(getApplicationContext(), AllLoginPage.class));
                                    }



                                })
                                .setIcon(android.R.drawable.ic_dialog_alert)
                                .show();
                    }
                    else{
                        progressDialog.setMessage("Logging in Please Wait...");
                        progressDialog.show();


                        //logging in the user
                        firebaseAuth.signInWithEmailAndPassword(email, password)
                                .addOnCompleteListener(Login.this, new OnCompleteListener<AuthResult>() {
                                    @Override
                                    public void onComplete(@NonNull Task<AuthResult> task) {
                                        progressDialog.dismiss();
                                        //if the task is successfull
                                        if (task.isSuccessful()) {
                                            //start the profile activity
                                            //finish();
                                            startActivity(new Intent(getApplicationContext(), Profile.class));

                                        } else {
                                            Toast.makeText(Login.this, "Please enter the correct email and password", Toast.LENGTH_LONG).show();
                                        }


                                    }
                                });

                    }
                }

            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {
            }


        });

        }


    @Override
    public void onClick(View view) {
        if (view == buttonSignIn) {
            userLogin();
        }

        if (view == textViewSignup) {
            finish();
            startActivity(new Intent(this, Registration.class));
        }
    }
}
private void userLogin(){
最终字符串email=editTextEmail.getText().toString().trim();
最终字符串密码=editTextPassword.getText().toString().trim();
//检查电子邮件和密码是否为空
如果(TextUtils.isEmpty(电子邮件)){
Toast.makeText(这是“请输入电子邮件”,Toast.LENGTH_LONG.show();
返回;
}
if(TextUtils.isEmpty(密码)){
Toast.makeText(这是“请输入密码”,Toast.LENGTH_LONG.show();
返回;
}
mdata=新的火基(“https://uevent-f8ea1.firebaseio.com");
//关闭此活动
在这里输入代码
mdata.child(“Doubleauthvendors”).addValueEventListener(新的ValueEventListener(){
@凌驾
公共无效onDataChange(数据快照结果){
List lst=new ArrayList();//结果将保留在此处
对于(DataSnapshot dsp:result.getChildren()){
lst.add(dsp.child(“email”).getValue().toString();//将结果添加到数组列表中
Toast.makeText(getApplicationContext(),dsp.child(“电子邮件”).getValue().toString(),Toast.LENGTH_LONG).show();
if((dsp.child(“email”).getValue().toString().equals(email))){
新建AlertDialog.Builder(Login.this)
.setTitle(“不正确的登录凭据”)
.setMessage(“您输入的凭据属于其他类型的帐户。是否重试?”)
.setNegativeButton(“是”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
//继续删除
editTextEmail.setText(“”);
editTextPassword.setText(“”);
}
})
.setPositiveButton(“否”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
//继续删除
startActivity(新意图(getApplicationContext(),AllLoginPage.class));
}
})
.setIcon(android.R.drawable.ic_对话框_警报)
.show();
}
否则{
设置消息(“登录请稍候…”);
progressDialog.show();
//登录用户
firebaseAuth.使用电子邮件和密码登录(电子邮件,密码)
.addOnCompleteListener(Login.this,新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
progressDialog.disclose();
//如果任务成功
if(task.issusccessful()){
//启动配置文件活动
//完成();
startActivity(新意图(getApplicationContext(),Profile.class));
}否则{
Toast.makeText(Login.this,“请输入正确的电子邮件和密码”,Toast.LENGTH_LONG.show();
}
}
});
}
}
}
@凌驾
取消后的公共无效(FirebaseError FirebaseError){
}
});
}
@凌驾
公共void onClick(视图){
如果(视图==按钮标识){
userLogin();
}
如果(视图==文本视图注册){
完成();
startActivity(新的意图(这个,Registration.class));
}
}
}

我最近解释了身份验证和授权之间的区别。这在这里可能也有帮助。请看,我最近解释了身份验证和授权之间的区别。这在这里可能也有帮助。看见