问题描述
我对 Flutter 和 dart 比较陌生,现在面临这个我找不到任何解决方案的问题。
目标
问题
Firestore 架构
种植(集合)-> 用户 ID(文档)-> 一月/二月(子集合)-> 植物信息文档
代码
class _PlantingListState extends State<PlantingList> {
FirebaseAuth _auth = FirebaseAuth.instance;
StreamController _streamController;
Stream _stream;
final _monthOptions = ["January","Febuary"];
String _option = "";
String uid = "";
@override
void initState() {
super.initState();
_streamController = StreamController();
_stream = _streamController.stream;
}
_onChange(){
_streamController.add(widget.db.collection("Planting").doc(uid).collection(_option).snapshots());
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: GFAppBar(
bottom: PreferredSize(
preferredSize: Size.fromHeight(48.0),child: Row(
children: <Widget>[
Expanded(
child: FormBuilderDropdown(
name: 'month',initialValue: "January",decoration: Inputdecoration(
labelText: 'Month',),onChanged: (value){
User user = _auth.currentUser;
setState(() {
_option = value;
uid = user.uid;
});
print(_option);
print(uid);
},allowClear: true,hint: Text('Select Month'),validator: FormBuilderValidators.compose(
[FormBuilderValidators.required(context)]),items: _monthOptions
.map((month) => DropdownMenuItem(
value: month,child: Text('$month'),))
.toList(),)
],leading: GFIconButton(
icon: Icon(
Icons.arrow_back,color: Colors.grey,onpressed: () {
Navigator.pop(context);
},type: GFButtonType.transparent,title: Text("View Planting Entry"),backgroundColor: Colors.white,body: StreamBuilder<QuerySnapshot>(
stream: _stream,builder: (context,AsyncSnapshot<QuerySnapshot> snapshot){
if(!snapshot.hasData) {
return Text('Loading...');
}
return Column(
children: [
new Expanded(child: ListView.builder(
itemCount: snapshot.data.docs.length,itemBuilder: (context,index){
String itemTitle = snapshot.data.docs[index]['name'];
// return CardItem(itemTitle: itemTitle,);
}))
],);
},)
);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)