如何在单个Android项目中使用Firebase的两种singin和singup方法

时间:2018-08-10 06:19:52

标签: android firebase firebase-authentication

我正在创建一个大学申请,在其中我将两个部分放在第一部分中,用于学生,第二部分用于教师。 学生和教职员工都使用身份验证电子邮件和密码方法。 问题是,当我从学生区登录并确实最小化应用程序,然后清除任务并重新打开应用程序时,应用程序即从头开始启动,如果我在教职人员区上点击,则即使我没有登录,我也已经登录了通过本节。

如何解决这个问题?

mAuth.signInWithEmailAndPassword(user_email,user_password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful())
                {
                   FirebaseUser  authentic_user=mAuth.getCurrentUser();
                   if(authentic_user.isEmailVerified()) {
                       String user_id = mAuth.getCurrentUser().getUid();
                       database = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id);
                       database.addValueEventListener(new ValueEventListener() {
                           @Override
                           public void onDataChange(DataSnapshot dataSnapshot) {
                               try {
                                   email_check = dataSnapshot.child("email").getValue().toString();
                               } catch (NullPointerException error) {
                                   email_check = null;
                               }

                               if (email_check != null) {
                                   email.setText(email_check);
                                   Intent intent = new Intent(getApplicationContext(), StudentDashboard.class);
                                   startActivity(intent);
                                   student_login_progress.setVisibility(View.INVISIBLE);
                               } else {
                                   student_login_progress.setVisibility(View.INVISIBLE);
                                   Toast.makeText(getApplicationContext(), "Invalid Username and Password", Toast.LENGTH_LONG).show();
                                   FirebaseAuth.getInstance().signOut();
                                   finish();
                               }
                           }

                           @Override
                           public void onCancelled(DatabaseError databaseError) {

                           }
                       });
                   }else
                   {
                       startActivity(new Intent(getApplicationContext(),Student_Email_Verification.class));
                       student_login_progress.setVisibility(View.INVISIBLE);
                   }


                }else
                {
                    Toast.makeText(Login_Student.this,task.getException().getMessage(),Toast.LENGTH_LONG).show();
                    student_login_progress.setVisibility(View.GONE);
                }
            }
        });

1 个答案:

答案 0 :(得分:0)

问题确实很简单,然后再去教职工科检查您是否已经登录。

如果是,请尝试

FirebaseAuth.getInstance().signOut();

这将帮助您退出现有帐户,然后使用另一个教师帐户再次登录。