使用带抖动的Firebase实时数据库,将用户详细信息保存在实时数据库中&将显示在其个人资料页面中。我能够存储数据库中的数据并获取数据,但是数据无法反映在屏幕上,我试图在文本字段中将数据显示为初始值。当用户单击个人资料时,如何在个人资料页面上显示数据?
getUserDetails() async {
final userProfileDetails = await FirebaseDatabase.instance
.reference()
.child("userDetails")
.child(FirebaseAuth.instance.currentUser.uid)
.once()
.then((DataSnapshot snapshot) {
setState(() {
email = snapshot.value['email'];
city = snapshot.value['city'];
state = snapshot.value['state'];
});
});
return data;
}
小工具树-
脚手架>列> TextFormFields
TextFormField(
initialValue: email,
onChanged: (value) {
petName = value;
},
decoration: InputDecoration(
suffixIcon: Icon(
Icons.email,
color: grey700,
),
labelText: 'Email'),
),
答案 0 :(得分:1)
如果您想查看数据库中的实时更改,则必须利用flutter的提供者和流原则。
简而言之:您正在创建一个传递所需数据的流(一个流正在侦听特定的集合/文档)。因此,如果流中的某些数据发生更改,您会收到通知。通知最终出现在您必须包装小部件的提供程序中。每次流提供新数据时,您包装的小部件和下面的所有内容都会重新构建。