如何使用Flatter从Firebase获取用户电子邮件?

如何使用Flatter从Firebase获取用户电子邮件?,firebase,flutter,email,dart,firebase-authentication,Firebase,Flutter,Email,Dart,Firebase Authentication,我正在尝试让用户的电子邮件显示在帐户页面中,这是我所做的: getuseremail() async { FirebaseAuth _auth = FirebaseAuth.instance; String email; final user = _auth.currentUser(); setState() {() { email = user.email; }} } 然后我显示它,但它给我一个错误,它是空的。你能试试这个吗 final user

我正在尝试让用户的电子邮件显示在帐户页面中,这是我所做的:

getuseremail() async {
    FirebaseAuth _auth = FirebaseAuth.instance;
    String email;
    final user = _auth.currentUser();
  setState() {() {
    email = user.email;
   }}
 }
然后我显示它,但它给我一个错误,它是空的。

你能试试这个吗

final user = _auth.currentUser;
或使用:

final user = _auth.getCurrentUser();

如果用户当前已登录,则必须执行以下操作:

getuseremail() async {
    FirebaseAuth _auth = FirebaseAuth.instance;
    String email;
    final user = await _auth.currentUser();
  setState() {() {
    email = user.email;
   }}
 }

使用“等待”,因为currentUser返回未来,但请确保该用户当前已登录,否则您将无法获取电子邮件。

您可以尝试以下代码:

  String _email;
  void getUserEmail()  {
    FirebaseAuth.instance.currentUser().then((user) {
      setState(() {
        _email = user.email;
      });
    });
  }
1、当前用户返回未来


2、_email需要在State上定义一个字段来设置State

确切的错误是什么?是电子邮件是空的还是用户是空的?电子邮件是空的。问题将在您使用此方法时解决。由于电子邮件变量是在方法中本地声明的,因此无法从外部访问它以在文本视图中显示它。你能提供完整的小部件代码吗,然后我可以给出一个更具体的答案如何解决它。