【发布时间】:2019-12-03 12:36:35
【问题描述】:
我正在处理一个项目,我需要对其中包含对象的列表进行排序,但它给出了错误。
The expression here has a type of 'void', and therefore can't be used.
这是我的代码:-
@override
void initState() {
super.initState();
subscription = collectionReference.snapshots().listen((datasnapshot) {
setState(() {
messageList = datasnapshot.documents
.map(
(v) => Message(
message: v.data['msg'],
sender: v.data['sender'],
imgUrl: v.data['imgUrl'],
id: v.data['id']),
)
.toList().sort((m, m2) => int.parse(m.id).compareTo(int.parse(m2.id)));
});
});
}
它在排序方法中引发错误:-
.toList().sort((m, m2) => int.parse(m.id).compareTo(int.parse(m2.id)));
我应该怎么做才能修复它,或者有没有其他方法可以对对象列表进行排序。
还有一个额外的问题。我的 Firestore 集合中的文档没有按时间顺序添加。所以,我必须手动完成。有谁知道为什么它们没有按时间顺序默认排序?
提前致谢。
【问题讨论】:
-
感谢编辑。我英语不是那么好。我会改进它。谢谢
-
文档未按时间顺序添加,因为这是在查询级别完成的。添加新文档时已自动应用索引,这就是查询快速排序文档的方式。
标签: firebase sorting flutter dart google-cloud-firestore