[英]Flutter - Error in BuildSuggestions (Search Delegate) using Firestore instance
我对 buildSuggestions 有一些疑问。 当我键入内容时,它显示“Instance of 'DocumentSnapshot'”而不是文档名称,如下图所示。
这是我的代码:
@override
Widget buildSuggestions(BuildContext context) {
return StreamBuilder(
stream: Firestore.instance.collection("anuncios").where("caseSearch", arrayContains: query).snapshots(),
builder: (context, snapshot) {
if (query.isNotEmpty);
List<DocumentSnapshot> results = snapshot.data.documents.where(
(DocumentSnapshot a) => a.data["titulo"].toString().contains(query)).toList();
return ListView.builder(
itemCount: results.length,
itemBuilder: (context, index){
return ListTile(
onTap: (){
close(context, results[index].toString());
},
title: Text(results[index].toString()),
);
}
);
},
);
}
您的代码的问题是您的snapshot.data.documents.where(...)
返回一个QuerySnapshot
object,无法通过在其后执行.ToList()
将其转换为DocumentSnapshot
列表。
您需要做的是使用QuerySnapshot
object 的docs
属性,这正是您想要的,一个List<DocumentSnapshot>
。 因此,将其应用于您的代码,您只需为此替换上述行:
List<DocumentSnapshot> results = (snapshot.data.documents.where((DocumentSnapshot a) => a.data["titulo"].toString().contains(query))).docs;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.