在Flutter中的小部件中显示Firebase RealTime数据库数据

时间:2020-10-05 16:45:16

标签: firebase flutter dart firebase-realtime-database

使用带抖动的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'),
                  ),

1 个答案:

答案 0 :(得分:1)

如果您想查看数据库中的实时更改,则必须利用flutter的提供者和流原则。

简而言之:您正在创建一个传递所需数据的流(一个流正在侦听特定的集合/文档)。因此,如果流中的某些数据发生更改,您会收到通知。通知最终出现在您必须包装小部件的提供程序中。每次流提供新数据时,您包装的小部件和下面的所有内容都会重新构建。