如何在另一个Flutter页面上更新Firestore数据

时间:2019-02-27 20:42:55

标签: firebase flutter google-cloud-firestore

我有一个将数据添加到数据库的功能。我需要在另一页上更新此数据。告诉我,您只需要在另一页上编写什么代码即可更新此数据。

  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
  final db = Firestore.instance;

   void createData() async {
            if (_formKey.currentState.validate()) {
              _formKey.currentState.save();
              DocumentReference ref = await db.collection('users').add({'email': '$_email', 'name': 'UserName', 'userPhotoURL': 'url'});
              setState(() => id = ref.documentID);
              print(ref.documentID);
            }
          }

1 个答案:

答案 0 :(得分:0)

好的,所以,如果您的问题是,当有新数据传入时如何更新ui,您可以使用StreamBuilder小部件来获取数据。如果出现新数据,它将更新ui。

StreamBuilder class

StreamBuilder(
  stream: Firestore.instance.collection("collection").snapshots(),
   builder: (context, snapshot) {
    if (!snapshot.hasData) {
      return CircularProgressIndicator();
      } else { 
          <DocumentSnapshot> items = snapshot.data.documents;
          return ListView.builder(
            itemCount: snapshot.data.documents.length,
            itemBuilder: (context, index) {
              DocumentSnapshot ds = snapshot.data.documents[index];
              return ListTile(
                title: Text('${ds["url"]}'),
              );
            }
          );
        } 
   }
 )