扑通用户电子邮件

时间:2018-07-31 12:06:42

标签: firebase firebase-authentication flutter

我想让我的Flutter登录表单用户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...');
        }
      },
    );
  }

我想将此用户电子邮件发送到我的Flutter文本框视图初始值。这是我扑朔迷离的文本框。

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的初始值。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

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

enter image description here

您可以找到源代码here

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

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