firebase - 更改显示名称花费的时间太长。Flutter 和 FIrebase
问题描述
我正在尝试制作我的用户列表,并且显示名称在更新配置文件后需要进行一些更改,但到那时列表中的名称部分已经有一个空值。
final User user = (await
_auth.createUserWithEmailAndPassword(
email: emailR,
password: passwordR,
)
).user;
user.updateProfile(displayName: usernameR);
emailc.clear();
passwordc.clear();
usernamec.clear();
DateTime now = DateTime.now();
String dt = "${now.day.toString().padLeft(2,'0')}/${now.month.toString().padLeft(2,'0')}/${now.year.toString()} ${now.hour.toString()}:${now.minute.toString()}";
FirebaseFirestore.instance.collection("users").doc(user.uid).set({
"id": user.uid,
"name": user.displayName,
"email": user.email,
"created_at": dt,
});
我认为这是一个时间问题的原因是因为在我第一次注册时显示用户名的主页上,它会显示“嘿,null”,之后每次都会显示正确的用户名。
解决方案
该updateProfile
调用是异步操作,user.displayName
在该操作完成之前不会更新。幸运的是,它返回 a Future
,因此您可以await
在调用中使用它来等待它完成,就像您已经为createUserWithEmailAndPassword
.
所以:
await user.updateProfile(displayName: usernameR);
推荐阅读
- python - background_task.py 不显示消息 - Python
- html - 如何删除html div元素之间的间距?
- c++ - 使用特殊字符获取正确长度的字符串
- c++ - 如何将原始字符串文字传递给 [[deprecated(message)]] 属性?
- ios - 苹果代码签名后,由于二进制文件受限,dylib 库未加载
- amazon-web-services - 我在 AWS 中托管了我的 REST API JAX-RS Jersey Java 项目,所有 API 在除 Jio(印度)之外的所有服务提供商网络上都运行良好
- c# - 如何水平滚动n个stackpanel的stackpanel?
- php - 数组中的自定义字段在包含数字时不发布
- excel - 使用多个单元格从不同的工作表中搜索数据?
- asp.net - VB .NET 中的动态文件下载按钮