Firebase 颤振:只有堆栈中的第一项是不允许的
我为这件事感到头疼。我希望我的堆栈中的所有项目都是可驳回的。我可以显示我的所有项目,但只有第一个项目是可驳回的。为什么? 以下是代码片段:Firebase 颤振:只有堆栈中的第一项是不允许的,firebase,stack,flutter,Firebase,Stack,Flutter,我为这件事感到头疼。我希望我的堆栈中的所有项目都是可驳回的。我可以显示我的所有项目,但只有第一个项目是可驳回的。为什么? 以下是代码片段: Widget build(BuildContext context) { return new StreamBuilder <QuerySnapshot>( stream: Firestore.instance.collection('records').document(uid).collection("pdrecord
Widget build(BuildContext context) {
return new StreamBuilder <QuerySnapshot>(
stream: Firestore.instance.collection('records').document(uid).collection("pdrecords").snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasData) {
print("snapShot call");
final int recordCount = snapshot.data.documents.length;
print("got data. records: $recordCount");
if (recordCount >0) {
return new Stack (
alignment: listSlideAnimation.value,
children:
snapshot.data.documents.map((DocumentSnapshot document) {
count = count + multiplyFactor; print("count: $count");
index ++;
//print("data: ${document.data}");
return Dismissible(
resizeDuration: null,
dismissThresholds: _dismissThresholds(),
//background: new LeaveBehindView(),
key: ObjectKey(document.documentID) ,
onDismissed: (DismissDirection direction) {
direction == DismissDirection.endToStart
? print("favourite")
: print("remove");
// Do stuff
},
child:
new ListPDRecord(
id: document.documentID,
margin: listSlidePosition.value * count, //new EdgeInsets.only(bottom: 80.0) * count, //listSlidePosition.value * 5.5,
width: listTileWidth.value,
date: document["date"],
),
);
}).toList(),
);
} else {
return NoDataListData();
}
} else {
// No data
return new NoDataListData();
}
});
}
}
小部件构建(构建上下文){
返回新的StreamBuilder(
流:Firestore.instance.collection('records').document(uid).collection('pdrecords').snapshots(),
生成器:(BuildContext上下文,异步快照){
if(snapshot.hasData){
打印(“快照调用”);
final int recordCount=snapshot.data.documents.length;
打印(“获取数据。记录:$recordCount”);
如果(记录计数>0){
返回新堆栈(
对齐方式:listSlideAnimation.value,
儿童:
snapshot.data.documents.map((DocumentSnapshot文档){
计数=计数+乘数;打印(“计数:$count”);
索引++;
//打印(“数据:${document.data}”);
可驳回的回报(
resizeDuration:null,
dismissThresholds:\u dismissThresholds(),
//背景:新建LeaveBehindView(),
key:ObjectKey(document.documentID),
onDismissed:(解除方向){
方向==DismissDirection.endToStart
?打印(“收藏夹”)
:打印(“删除”);
//做事
},
儿童:
新列表记录(
id:document.documentID,
边距:listSlidePosition.value*count,//仅新边集(底部:80.0)*计数,//listSlidePosition.value*5.5,
宽度:listTileWidth.value,
日期:文件[“日期”],
),
);
}).toList(),
);
}否则{
返回NoDataListData();
}
}否则{
//没有数据
返回新的NoDataListData();
}
});
}
}
我怀疑是键,我尝试了许多不同键的变体,如手动增加索引等,但仍然只有第一项是不允许的
有什么建议吗?经过多轮的实验,我终于明白了以下几点: