当前位置: 首页 > 知识库问答 >
问题:

Flutter Firebase身份验证当前用户()返回null

詹唯
2023-03-14

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

前两行返回Firebase User。第三个返回null。第四,如果第三个被注释会引发空引用错误。

谢谢,
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()

共有3个答案

郭坚壁
2023-03-14

如果重新加载返回的FirebaseUser会怎样?这对我很有效。

const User currentUser = await auth.currentUser;
if (currentUser != null) {
  await currentUser.reload();
}

这显然是一个简化的代码。注:auth。currentUser()现在是auth.currentUser。

潘俊楚
2023-03-14

查看firebase_auth代码,我看到< code > signInWithEmailAndPassword 确实实例化并返回了一个用户。这可能就是您需要用来呼叫< code > sendEmailVerification 的用户。

final user = await _auth.signInWithEmailAndPassword(email: email, password: password);
await user.sendEmailVerification();
巩衡
2023-03-14

这是我发现的,我不确定它是否还是一个bug,但是有一种方法可以让它工作。由signInWithEmailAndPassword返回的FirebaseUser没有经过真正的身份验证。onAuthStateChanged流返回的唯一用户是。因此,如果从onAuthStateChanged上下文中调用user.sendEmailVerification(),那么一切正常。

这将有助于:

_firebaseUserChanged = _auth.onAuthStateChanged.listen((FirebaseUser user) {
    if (user != null && !user.isEmailVerified) {
        user.sendEmailVerification(); 
   }
});

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

 类似资料:
  • 我想在创建新用户时添加用户的DisplayName。当我尝试使用updateProfile方法时,它会发出以下警告 ///更新用户的配置文件数据。 @已弃用('将在版本2.0.0中删除。''改用updatePhotoURL和updateDisplayName。', 你怎么能避开这个?? flutter: User(显示名称:null,电子邮件:test1@gmail.com,emailVerifi

  • 我正在尝试在反应式Spring Boot应用程序中配置Spring Security性,并包括依赖于新的Spring Security版本5.0.0的父项目。RC1: 我将我的Spring WebSecurity配置为使用自定义AuthenticationFilter来检索我的身份验证信息,以及使用我自己的提供者的自定义AuthenticationManager。 配置: ReactiveAuth

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,

  • 我在Node.JS中使用AWS Cognito。 我正在成功注册和验证用户,但身份验证返回“未知错误,fetch的响应主体未定义” 我使用节点获取模块随着亚马逊-认知-身份-js(设置为var AWSCognito在下面的代码)。用户未处于需要更改密码并已验证的状态。 其他人是否经历过这种情况?您是如何解决此问题的?感谢您提前给予指导。。。。 这是我的代码,我的完整模块作为iditawsutils

  • 我一直在寻找使用各种AWS服务来处理我们下一个主要项目的基础设施。我们开始研究EC2实例上的docker容器,但在进一步研究AWS Lambda之后,这似乎是一条值得探索的道路。 使用AWS Lambda范例,我们只需使用Lambda函数作为逻辑粘合剂,将数据和事件(来自其他AWS服务)保存在一起。 例如,如果我们产品的用户创建了一个新记录,AWS Lambda可以在该事件中触发,我们可以调用La

  • 我与拉雷维尔和托拉斯合作,基础工作很好。我确实有一个问题似乎不是随包而来的。我想要的是,当我执行时,如果他们登录,它也会返回他们的角色。目前我知道我可以做