如何检查用户是否已经在Firebase中注册?

时间:2020-03-26 21:04:03

标签: java android firebase firebase-authentication

我想验证用户是否已经注册。这是我的代码。请帮忙。谢谢。

fAuth           =  FirebaseAuth.getInstance();

    signUpBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if((validateName()||validateLastName()||validateEmail()||validatePassword()||validateRepeatPassword())!= true){
                String email = uEmail.getText().toString().trim();
                String password = uPassword.getText().toString().trim();
                fAuth.createUserWithEmailAndPassword(email,password);
                Toast.makeText(SignUpActivity.this,"Welcome!",Toast.LENGTH_SHORT).show();
                openPhoneActivity();
            }else {
                //here will be toast with something like "You are  already registered"
            }
            }
        });

3 个答案:

答案 0 :(得分:2)

方法createUserWithEmailAndPassword将检查Firebase身份验证内是否已存在电子邮件。从文档中:

如果已经存在具有给定电子邮件地址的帐户,则会抛出

FirebaseAuthUserCollisionException

您可以使用addOnCompleterListener()来了解创建是否成功:

                auth.createUserWithEmailAndPassword(email, password)
                        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task) {
                                if (!task.isSuccessful()) {
                                   Toast.makeText((getApplicationContext(), "Authentication failed: " + task.getException().getMessage(),Toast.LENGTH_SHORT).show();

https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseAuth#public-taskauthresult-createuserwithemailandpassword-string-email,-string-password

答案 1 :(得分:1)

dict = {ww_splitted[0]+"_gerundio" : ww_splitted[1]}

答案 2 :(得分:0)

如果已经存在具有给定电子邮件地址的帐户,则addOnCompleterListener()将抛出FirebaseAuthUserCollisionException。您可以通过以下代码检查电子邮件是否已经注册。

mAuth.createUserWithEmailAndPassword(signup_email, signup_password)
                            .addOnCompleteListener(SignupActivity.this, new OnCompleteListener<AuthResult>() {
                                @Override
                                public void onComplete(@NonNull Task<AuthResult> task) {
                                    if (task.isSuccessful()) {
                                        // Signup success
                                      
                                        Toast.makeText(SignupActivity.this,"Signup Successful!", Toast.LENGTH_SHORT).show();
                                        
                                    } else {
                                    
                                        // If signup fails, and user emial is already registered.
                                         if (task.getException() instanceof FirebaseAuthUserCollisionException) {
                                         
                                            Toast.makeText(SignupActivity.this,"Provided Email Is Already Registered!", Toast.LENGTH_SHORT).show();
                                            
                                        }

                                    }
                                }
                            });