Firebase 分页可编辑&;火基
我浏览过互联网,没有发现任何东西,我肯定不是唯一一个想和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() =&
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);
}