Nic*_*kPR 5 android firebase firebase-authentication
我正在创建一个可以发送通知的 Android 应用程序。用户可以选择使用电话号码或电子邮件帐户。
我只需要验证用户输入的电子邮件,我不想创建Firebase 帐户
Firebase 有一个FirebaseUser#sendEmailVerification()但需要创建一个帐户。
换句话说,我只希望电子邮件验证与电话验证相同,其中 Firebase 只会向您发送代码或验证链接。
有没有办法在不创建帐户的情况下利用 Firebase 电子邮件验证?
对于任何试图完成相同任务的人,这就是我如何做到的。
转到 Fibrebase 控制台并在身份验证屏幕上启用Email/Password和Anonymous登录方法
然后在你的代码中,创建一个匿名用户(这就是诀窍,因为现在你有一个有效的用户来验证),更改电子邮件,然后发送验证。之后,重新加载 Firebase 用户并检查isEmailVerified()
mAuth = FirebaseAuth.getInstance();
mAuth.signInAnonymously()
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Log.d(TAG, "signInAnonymously:success");
if (mAuth.getCurrentUser().isEmailVerified() == false) {
mAuth.getCurrentUser().updateEmail("<MAIL YOU WANTO TO VERIFY HERE>");
mAuth.getCurrentUser().sendEmailVerification();
Log.e(TAG, "mail sent.....................................");
}
//updateUI(user);
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInAnonymously:failure", task.getException());
Toast.makeText(getApplicationContext(), "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
}
});
Run Code Online (Sandbox Code Playgroud)
这是重载部分:
mAuth.getCurrentUser().reload()
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.e(TAG,( mAuth.getCurrentUser().isEmailVerified() ? "VERIFIED" : "Not verified"));
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2892 次 |
| 最近记录: |