Firebase 分页可编辑&;火基

Firebase 分页可编辑&;火基,firebase,flutter,google-cloud-firestore,flutter-web,Firebase,Flutter,Google Cloud Firestore,Flutter Web,我浏览过互联网,没有发现任何东西,我肯定不是唯一一个想和Firebase合作的人 我要创建一个非常简单的表: 带有列表的页面 class CentreViewEnquiriesList extends StatefulWidget { final CentreData centreData; CentreViewEnquiriesList({this.centreData}); @override _CentreViewEnquiriesList createState() =&

我浏览过互联网,没有发现任何东西,我肯定不是唯一一个想和Firebase合作的人

我要创建一个非常简单的表:

带有列表的页面

class CentreViewEnquiriesList extends StatefulWidget {
  final CentreData centreData;
  CentreViewEnquiriesList({this.centreData});
  @override
  _CentreViewEnquiriesList createState() => _CentreViewEnquiriesList();
}

class _CentreViewEnquiriesList extends State<CentreViewEnquiriesList> {
  int _rowsPerPage = PaginatedDataTable.defaultRowsPerPage;
  @override
  Widget build(BuildContext context) {
    return SingleChildScrollView(
      child: Container(
        padding: EdgeInsets.all(20),
          child: PaginatedDataTable(
              header: Text('Enquiries'),
              columns: [
                DataColumn(label: Text('Enquiry Date')),
                DataColumn(label: Text('Enquiry Person')),
                DataColumn(label: Text('Enquiry Status')),
              ],
              source: EnquiryDataSource(widget.centreData),
              onRowsPerPageChanged: (r) {
                setState(() {
                  _rowsPerPage = r;
                });
              },
              rowsPerPage: _rowsPerPage,
          ),
      ),
    );
  }
}
通常我会使用类似于StreamBuilder的东西,但是因为它需要类有一个状态,所以它不会工作

以下是我获取数据的方法:

//List of Enquiries to show on CentreView Enquiries DataTable
  List<EnquiryData> _enquiryListFromSnapshot(QuerySnapshot snapshot){
    return snapshot.documents.map((doc) {
      return EnquiryData(
      enquiryID: doc.data['enquiryID'],
      parentFirstName: doc.data['firstName'],
      parentLastName: doc.data['lastName'],
      enquiryStatus: doc.data['enquiryStatus'],
      );
    });
  }

  //get stream of all enquiries
  Stream<List<EnquiryData>> get enquiries {
    return centresCollection.document(centreID).collection('enquiries').snapshots().map(_enquiryListFromSnapshot);
  }
//要在CentreView查询数据表上显示的查询列表
列表_inquiryListFromSnapshot(QuerySnapshot快照){
返回snapshot.documents.map((doc){
返回查询数据(
查询ID:doc.data['inquiryID'],
parentFirstName:doc.data['firstName'],
parentLastName:doc.data['lastName'],
查询状态:文档数据['inquiryStatus'],
);
});
}
//获取所有查询的信息流
欢迎查询{
返回centresCollection.document(centreID).collection('inquiries').snapshots().map(_inquiryListFromSnapshot);
}
//List of Enquiries to show on CentreView Enquiries DataTable
  List<EnquiryData> _enquiryListFromSnapshot(QuerySnapshot snapshot){
    return snapshot.documents.map((doc) {
      return EnquiryData(
      enquiryID: doc.data['enquiryID'],
      parentFirstName: doc.data['firstName'],
      parentLastName: doc.data['lastName'],
      enquiryStatus: doc.data['enquiryStatus'],
      );
    });
  }

  //get stream of all enquiries
  Stream<List<EnquiryData>> get enquiries {
    return centresCollection.document(centreID).collection('enquiries').snapshots().map(_enquiryListFromSnapshot);
  }