我正在使用Firebase的电子邮件和密码方法注册我的用户.像这样:
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
FirebaseUser signed = task.getResult().getUser();
writeNewUser(signed.getUid());
new android.os.Handler().postDelayed(
new Runnable() {
public void run() {
updateUser(b);
}
}, 3000);
} else {
new android.os.Handler().postDelayed(
new Runnable() {
public void run() {
onSignupFailed();
}
}, 3000);
}
}
});
Run Code Online (Sandbox Code Playgroud)
用户的电子邮件成功注册后,我希望Firebase发送验证邮件.我知道这可以使用Firebase sendEmailVerification.除了发送此电子邮件之外,我希望在验证电子邮件之前禁用该用户的帐户.这也需要使用Firebase的isEmailVerified功能.但是,我没有成功让Firebase发送验证邮件,我无法弄清楚是否要禁用并启用发送验证邮件的帐户以及验证后.
我知道我们可以使用Firebase Auth 3.0验证用户的电子邮件.我无法在Android上找到任何有关电子邮件验证的文档.我能够找到适用于iOS和网络的相同内容,但不适用于Android.任何指向文档的链接都会有所帮助.
从图像中可以清楚地看到,一旦用户登录,他就会在电子邮件中暗示他确认他的订阅.我已经订阅了自己,并在Auth选项卡的用户部分进行了验证,我可以看到我的邮件ID和firebase生成了唯一的用户ID.这里缺少的是我的电子邮件ID的确认电子邮件.有人试过这个还是我太早尝试这个?谢谢你的帮助.
学习后,可以在最新的Firebase中发送电子邮件验证,尽管文档丢失了,但我想自己进行测试。
使用以下代码段:
Auth.$onAuthStateChanged(function(firebaseUser) {
if (firebaseUser) {
console.log(firebaseUser);
if (firebaseUser.emailVerified) {
// console.log(firebaseUser.emailVerified);
toastr.success('Email verified');
} else {
toastr.info('Do verify email');
}
}
})
Run Code Online (Sandbox Code Playgroud)
在console.log(firebaseUser.emailVerified)返回false,总是,虽然发送的验证已启动,收到的邮件,并点击。
使用电子邮件登录后,我立即检查是否已验证用户,如果未通过验证,则应发送电子邮件:
Auth.$signInWithEmailAndPassword(email, password)
.then(function(firebaseUser) {
if (!firebaseUser.emailVerified) {
firebaseUser.sendEmailVerification();
console.log('Email verification sent');
}
$state.go('home');
})
Run Code Online (Sandbox Code Playgroud)
在my https://console.firebase.google.com/project/my-app-name/authentication/emails下,默认情况下所有内容均为默认值,其中的验证链接为:
Follow this link to verify your email address.
https://my-app-name.firebaseapp.com/__/auth/handler?mode=<action>&oobCode=<code>
我用来注册的电子邮件会收到验证电子邮件,但是,单击链接并不能将更改user.emailVerified为true。