我想验证用户是否已经注册。这是我的代码。请帮忙。谢谢。
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"
}
}
});
答案 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();
答案 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();
}
}
}
});