我希望将我的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初始值。谁能帮我?
也许不是你问题的直接答案。但是,使用具有验证异步身份验证的表单需要对验证程序进行特殊管理以处理异步结果。我只是一起演示了如何管理验证器。该演示模拟了异步调用,因此您必须为特定应用程序实现firebase身份验证。如果仍然有问题,可能是一个有用的参考。
你可以找到源代码here
编辑:我创建了一个example,显示如何通过插入一个进行异步调用的小部件来预加载表单。
我也使用FutureBuilder工作,但这看起来更干净。还有其他方法可以做到这一点。