我有这个数据结构 Database Structure
我需要调用FavDestination集合中的所有项目,这是我在Flutter中的代码
child: StreamBuilder(
stream: Firestore.instance.collection('FavDestination').snapshots(),
builder: (context, snapshot){
if(!snapshot.hasData) return Text('Loading Data... Please Wait');
return
ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: snapshot.data.documents.length, //snapshot.data.document.length,
itemBuilder: (BuildContext context, int index) {
DocumentSnapshot destination = snapshot.data.documents[index];
//DocumentSnapshot destination = snapshot.data.document[index];
return GestureDetector(
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (_) => DestinationScreen(
destination: destination,
),
),
),
它成功检索了数据,如果用户点击文档,它将转到“目标屏幕”,我需要检索活动中的所有数据,这是我在“目标屏幕”中的代码
Expanded(
child: ListView.builder(
padding: EdgeInsets.only(top: 10.0, bottom: 15.0),
itemCount: widget.destination['activities'].length,
itemBuilder: (BuildContext context, int index) {
DocumentSnapshot activity = widget.destination['activities'][index];
return Stack(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
width: 120.0,
child: Text(
activity['name'],
style: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.w600,
),
这是我得到的错误 Error Message
有什么办法解决吗?谢谢
答案 0 :(得分:0)
您的activities
字段似乎是嵌套地图。在第一层上,您还有Bali1
字段,它也是地图。而且代码活动正在尝试使name
处于第一级。
我想您应该在destination
对象结构上做更多的工作。您可以将其打印出来以分析并尝试映射Map<dynamic, dynamic>
和Bali1之类的对象。
我没有操场可以快速完成,但是我在这里找到了类似的方法: How do I get specific values from a datasnapshot in flutter?
我希望它将对您有帮助!