firebase - 颤振获取用户电子邮件
问题描述
我想将我的颤振登录表单用户 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 的初始值。谁能帮我?
解决方案
也许不是您问题的直接答案。但是使用带有验证的表单进行异步身份验证需要对验证器进行特殊管理以处理异步结果。我只是一起演示了如何管理验证器。该演示模拟了异步调用,因此您必须为您的特定应用程序实现 firebase 身份验证。如果仍有问题,可能是有用的参考。
你可以在这里找到源代码
编辑:我创建了一个示例,展示了如何通过插入一个进行异步调用的小部件来预加载表单。
我也使用FutureBuilder让它工作,但这看起来更干净。还有其他方法可以做到这一点。
推荐阅读
- java - 从Java中的对象获取泛型类型参数
- kubernetes - 从集群外部连接到 statefulset 内的特定 pod
- css - 如何使用 React Fullcalendar 制作粘性标题?
- reactjs - 如何使一行始终可编辑?
- python - Pandas if-else "join" 函数返回 ValueError:Series 的真值不明确
- reactjs - 如何循环反应
- angular - 如何在不使用管道的情况下从 api 数据中过滤(搜索)名称
- mysql - SQL 问题,星期日是一周的第一天?
- javascript - Angular Animations 完成后重置样式
- java - 无法使用 Apache log4j2/slf4j 发送错误邮件