【问题标题】:flutter get user email颤振获取用户电子邮件
【发布时间】:2019-01-07 19:54:46
【问题描述】:

我想将我的颤振登录表单用户 ID 放入文本框中。我使用 firebase 进行身份验证。我写了一个获取用户电子邮件的方法。

  _getUserEmail(){

    FutureBuilder<FirebaseUser>(
      future: FirebaseAuth.instance.currentUser(),
      builder: (BuildContext context, AsyncSnapshot<FirebaseUser> snapshot) {
        if (snapshot.connectionState == ConnectionState.done) {
          return new Text(snapshot.data.email);
        }
        else {
          return new Text('Loading...');
        }
      },
    );
  }

我想将此用户电子邮件放入我的颤动文本框视图初始值。这是我的颤振文本框。

ListTile(
       leading: Icon(Icons.info),
       title: TextFormField(
        decoration: InputDecoration(
              labelText: 'Enter Your name'
         ),
          initialValue: _getUserEmail(),
           onSaved: (val) => item.name = val,
           validator: (val) => val == "" ? val : null,
         ),
        ),

我想把我的电子邮件变成 ListTile 的初始值。谁能帮帮我?

【问题讨论】:

  • 在我看来,如果您获得一个有效的“currentUser”,则该用户已经通过身份验证,因此不必再次登录。如果用户过去登录过并且登录已过期或用户已注销,您可以将电子邮件保存在“共享首选项”flutter.io/cookbook/persistence/key-value 并从那里检索以显示在表单中。
  • 我想获取登录电子邮件并将其保存在我的 firebase 对象中。我可以获取用户登录电子邮件。但它无法显示在我的文本框中。我使用了 _getUserEmail 方法。但它不能在颤振文本框初始值中使用

标签: firebase firebase-authentication flutter


【解决方案1】:

也许不能直接回答您的问题。但是使用带有验证的表单进行异步身份验证需要对验证器进行特殊管理以处理异步结果。我只是一起演示了如何管理验证器。该演示模拟了异步调用,因此您必须为您的特定应用程序实现 firebase 身份验证。如果仍有问题,可能是有用的参考。

你可以找到源代码here

编辑:我创建了一个example,展示了如何通过插入一个进行异步调用的小部件来预加载表单。

我也使用FutureBuilder 让它工作,但这看起来更干净。还有其他方法可以做到这一点。

【讨论】:

  • 我也登录并重定向到我的主页。但我想在我的主页文本字段中显示登录用户电子邮件。那是我的问题。但无论如何,谢谢你的回答。它支持我另一个。
猜你喜欢
  • 2020-12-04
  • 2019-12-31
  • 2023-03-28
  • 2020-10-24
  • 2019-03-04
  • 2021-01-08
  • 2021-05-10
  • 2019-12-22
  • 2017-10-20
相关资源
最近更新 更多