【发布时间】:2019-07-02 14:57:42
【问题描述】:
当用户在我的应用中注册时,他会收到一封验证电子邮件。 onAuthStateChanged-listener 在使用 createUserWithEmailAndPassword 创建用户时被调用,但在电子邮件得到验证后不会调用。
我有一个单独的类来处理所有身份验证。下面的方法是注册用户
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!");
}
}
【问题讨论】:
-
文档中是否有内容说用户将在验证电子邮件后自动登录?此外,也可能是 authStatechanged 只被调用一次,在注册之后,电子邮件仍然未经验证,用户将不得不关闭并打开应用程序。
标签: firebase flutter firebase-authentication