gpt4 book ai didi

firebase - Flutter Firebase 身份验证 currentUser() 返回 null

转载 作者:IT王子 更新时间:2023-10-29 07:10:14 26 4
gpt4 key购买 nike

这是关于 Flutter Firebase 身份验证插件的。
我试图在创建新用户后发送验证电子邮件,但 sendEmailVerification() 内部使用 currentUser()。这对我来说像是一个错误,但为了以防万一,我向 stackoverflow 发布了一个问题。 Android 和 IOS 上的错误是一样的。

前两行返回 FirebaseUser。第三个返回 null。第四,如果第三个被注释掉会抛出一个空引用错误。

谢谢,
鲍里斯

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();
}
});

当然,这段代码是简化过的。我们不想在每次登录尝试时都发送验证电子邮件。

关于firebase - Flutter Firebase 身份验证 currentUser() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50439051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com