如何从Firebase获取用户电子邮件而扑朔迷离?

时间:2020-08-15 07:11:29

标签: firebase flutter email dart firebase-authentication

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

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

然后显示它,但是它给我错误,它为空。

3 个答案:

答案 0 :(得分:1)

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

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

使用await是因为currentUser()返回了Future<FirebaseUser>,但是请确保用户当前已登录,否则您将无法获得电子邮件。

答案 1 :(得分:1)

您可以尝试以下代码:

  String _email;
  void getUserEmail()  {
    FirebaseAuth.instance.currentUser().then((user) {
      setState(() {
        _email = user.email;
      });
    });
  }

1, currentUser 返回未来

2, _email 需要在 State 上为 setState

定义一个字段

答案 2 :(得分:0)

你可以试试吗?

  <meta-data
            android:name="yourpackagename.MyGlideModule"
            android:value="AppGlideModule" />

或使用:

final user = _auth.currentUser;