这是关于 Flutter Firebase 身份验证插件的。
我试图在创建新用户后发送验证电子邮件,但 sendEmailVerification() 内部使用 currentUser()。这对我来说似乎是一个错误,但为了以防万一,我在 stackoverflow 上发布了一个问题。 Android 和 IOS 上的错误是相同的。
前两行返回 FirebaseUser。第三个返回 null。第四,如果对 Third 进行注释,则会引发空引用错误。
Thanks,
Boris
user = await _auth.createUserWithEmailAndPassword(email: email, password: password);
// result is FirebaseUser
user = await _auth.signInWithEmailAndPassword(email: email, password: password);
// result is FirebaseUser
user = await _auth.currentUser();
// result is null
await user.sendEmailVerification();
//null reference, because it internally uses .currentUser()
这是我发现的,我不确定它是否仍然是一个错误,但有一种方法可以让它工作。
由signInWithEmailAndPassword 返回的FirebaseUser 并未真正经过身份验证。只有 onAuthStateChanged 流返回的用户才是。
因此,如果您从 onAuthStateChanged 上下文调用 user.sendEmailVerification() ,那么一切都很好。
这会起作用:
_firebaseUserChanged = _auth.onAuthStateChanged.listen((FirebaseUser user) {
if (user != null && !user.isEmailVerified) {
user.sendEmailVerification();
}
});
当然,这段代码是经过简化的。我们不想在每次登录尝试时发送验证电子邮件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)