当用户在我的应用程序中注册时,他会收到一封验证的电子邮件。当用户使用createUserSusEmailAndPassword
创建时,调用onAuthStateChanged
-listener,但在电子邮件得到验证后不会。
我有一个单独的类处理所有身份验证。以下方法是注册用户
Future<FirebaseUser> signUpUser(email, password) async {
final FirebaseUser user = await _auth.createUserWithEmailAndPassword(email: email, password: password);
assert (user != null);
assert (await user.getIdToken() != null);
return user;
}
使用这个方法在我的StatefulWidget中调用这个方法
void _signUpUser() async {
try {
await Auth().signUpUser(_email, _password)
..sendEmailVerification();
} catch (e) {
print(e.toString());
}
}
并且onAuthStateChanged
在我的StatefulWidget
的initState
方法中设置
FirebaseAuth.instance.onAuthStateChanged.listen((user) {
print("Auth State Changed!");
if (user.isEmailVerified) {
print("EMail verified!");
}
}
你可以简单地做一个firebase.auth()。发送电子邮件验证链接后注销。当用户再次点击登录时,它会自动触发onAuthStateChanged。
目前,我提供了一个“完成电子邮件验证”的按钮。这就调用了user . reload——所以根据@Frank van Puffelen的评论,这就足够了。这比得到一个状态更新事件要差得多;我可能会实现一个循环,在发送电子邮件后检查一段时间的状态,以便应用程序自动通过。
只有在用户登录或注销的情况下才会触发onAuthStatechanged
根据Doc-
onAuthStatechanged
添加观察者以更改用户的登录状态。
在以下情况下将触发观察器:
>
当首次调用 auth().onAuthStateChanged() 时。它将以初始身份验证状态触发。如果用户从 auth().signInWithRedirect() 操作返回,则观察者将等待该操作解析,然后再最初触发。
当新用户签名时。
当已经登录的用户注销时。
我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。
我有一张登记表,上面有姓名、电子邮件和密码。注册时,会向用户的电子邮件地址发送一个确认链接。但在发送链接之前,我需要验证电子邮件地址。我使用了: 它显示的任何电子邮件都有效,例如, 我从获得的电子邮件并将其存储在中。 我到底要怎么做才能让它成功?
问题内容: 我检查了用户是否通过电子邮件验证。但是,无论我发送并确认了多少电子邮件,验证状态仍为。检查时我做错什么了吗? 问题答案: 我如何实现此功能的方法是添加一个 带有时间间隔的,它将检查用户是否已通过验证,然后在完成验证后终止计时器。 检查您当前用户状态的功能:
我检查了用户是否通过电子邮件进行验证。但是,无论我发送并确认了多少封电子邮件,验证状态仍然是。我在检查时是否做错了什么?
我正在使用Firebase的方法来验证电子邮件。以下是代码: 这里,< code>else代码应该只在电子邮件未经验证时运行。但是,即使在我验证了电子邮件并重新开始活动之后,< code>if语句仍不为< code>true,电子邮件将再次发送。
null 我需要重新验证用户,最好的方法是什么?在用户登录后,如何切换的状态? 谢谢