Coo*_*bub 12 android firebase firebase-authentication
我想检查用户何时尝试使用createUserWithEmailAndPassword()Firebase用户身份验证方法注册,此用户已在我的应用中注册.

Fra*_*len 13
要检测具有该电子邮件地址的用户是否已存在,您可以检测呼叫何时createUserWithEmailAndPassword ()失败auth/email-already-in-use.我看到@Srinivasan刚刚发布了一个答案.
或者,您可以通过调用fetchSignInMethodsForEmail()(先前调用的fetchProvidersForEmail())来检测已使用的电子邮件地址.
Sri*_*san 11
当用户尝试使用相同的电子邮件地址创建用户时,任务响应将为"响应:电子邮件地址已被其他帐户使用".
mFirebaseAuth.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
//User registered successfully
}else{
Log.i("Response","Failed to create user:"+task.getException().getMessage());
}
}
});
Run Code Online (Sandbox Code Playgroud)
首先,您需要确保在Firebase控制台中启用了该限制(帐户和电子邮件地址设置).看看@ Srinivasan的回答.
然后,在您的Java代码中执行此操作:
firebaseAuthenticator.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
if (task.getException() instanceof FirebaseAuthUserCollisionException) {
Toast.makeText(SignUpActivity.this, "User with this email already exist.", Toast.LENGTH_SHORT).show();
}
} else {
sendVerificationEmail();
startActivity(new Intent(SignUpActivity.this, DetailsCaptureActivity.class));
}
// ...
}
});
Run Code Online (Sandbox Code Playgroud)
这就是诀窍发生的地方:
if (task.getException() instanceof FirebaseAuthUserCollisionException) {
Toast.makeText(SignUpActivity.this,
"User with this email already exist.", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
使用电子邮件和密码注册用户时可能会抛出几个异常,但我们感兴趣的是FirebaseAuthUserCollisionException.顾名思义,如果电子邮件已存在,则抛出此异常.如果抛出的异常是此类的实例,请让用户知道.
| 归档时间: |
|
| 查看次数: |
20092 次 |
| 最近记录: |