我正在使用 Flutter Search Delegate 实现搜索功能,数据存储在 Firestore 中。我不明白为什么会出现这个错误。
Widget buildSuggestions(BuildContext context) {
return StreamBuilder(
stream: Firestore.instance.collection('todos').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return new Text('Loading...');
final results =
snapshot.data.documents.where((a) => a['title'].contains(query));
return ListView(
children: results.map<Widget>((a) => Text(a['title'])).toList(),
);
},
);
}
错误:
类型“(dynamic)=>dynamic”不是“test”类型“(DocumentSnapshot)=>bool”的子类型
最佳答案
更换线路
final results = snapshot.data.documents.where((a) => a['title'].contains(query));
到
final results = snapshot.data.documents.where((DocumentSnapshot a) => a.data['title'].contains(query));
还有这条线
children: results.map<Widget>((a) => Text(a['title'])).toList()
到
children: results.map<Widget>((a) => Text(a.data['title'])).toList()
关于使用 Firestore 进行 Flutter 搜索委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58587696/