【问题标题】:How to get uid from Firebase in Flutter?如何在 Flutter 中从 Firebase 获取 uid?
【发布时间】:2020-12-04 13:55:17
【问题描述】:

我正在尝试从登录用户那里获取 UID(用户 ID),但由于 uid 为空,我收到错误消息:

final FirebaseAuth _auth = FirebaseAuth.instance;
  getCurrentUser() async {
    final FirebaseUser user = await _auth.currentUser();
    final uid = user.uid;
    // Similarly we can get email as well
    //final uemail = user.email;
    print(uid);
    //print(uemail);
  }

错误是: 未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'uid'。

请帮我解决这个问题。 谢谢

【问题讨论】:

    标签: android flutter


    【解决方案1】:

    首先更新您使用的包,FirebaseUser 现在已弃用。作为等效使用 User user = FirebaseAuth.instance.currentUser;

    User user = FirebaseAuth.instance.currentUser;
    print(user.uid);
    

    问题可能是您没有正确登录。

    【讨论】:

    • 我已经登录了,我也可以在创建账户页面获取uid
    • 但是在这里我无法得到它
    • 好的,我知道了。您没有在页面中使用相同的 FirebaseAuth 实例。这意味着您正在创建帐户页面中初始化一个 FirebaseAuth(已通过身份验证)。另一个在其他页面上的另一个实例是不同的实例且未经过身份验证。请检查并告诉我是这样的话,我会得到解决方案
    • 我正在使用这个方法 final newuser = await _auth.createUserWithEmailAndPassword(email: email, password: password);打印(“新用户”); // 打印(新用户);打印(newuser.user.uid);
    • 在注册页面中
    【解决方案2】:

    看来您根本没有登录。 未登录时,_auth.currentUser() 将返回 null 而不是 User。

    会不会是时间问题,在登录还没有完成的时候调用_auth.currentUser()太早了?

    【讨论】:

    • 我可以在创建账户页面获取uid
    • 但是在这里我无法得到它
    猜你喜欢
    • 2021-11-23
    • 2023-04-02
    • 2021-02-26
    • 1970-01-01
    • 2020-10-22
    • 2021-02-09
    • 2019-06-18
    • 1970-01-01
    • 2019-02-07
    相关资源
    最近更新 更多