【发布时间】:2021-05-08 15:12:58
【问题描述】:
我正在为firestore数据库的flutter应用程序中的列表中的搜索操作实现以下代码。
当没有实现搜索时,它会很好地加载列表,但是当我尝试使用相同的搜索操作时,它会给我错误
错误:“查询”类型不是“流”类型的子类型
Scaffold(
appBar: AppBar(
elevation: 0,
title: Container(
padding: EdgeInsets.symmetric(horizontal: 10),
child: Card(
child: TextField(
decoration: InputDecoration(
prefixIcon: Icon(Icons.search), hintText: 'Search...'),
onChanged: (val) {
setState(() {
query = val;
});
},
),
),
),
leading: IconButton(
icon: Icon(
Icons.exit_to_app,
color: Colors.red[50],
),
onPressed: () {
logout();
}),
),
body:
Container(
child: Column(
children: [
Container(
child: Expanded(
child: StreamBuilder<QuerySnapshot>(
stream: (query != "" && query != null)
? FirebaseFirestore.instance
.collection('momos_nv')
.orderBy('itemName')
.startAt([query])
.endAt([query + '\uf8ff'])
: FirebaseFirestore.instance.collection("momos_nv").snapshots(),
builder: (context, snapshot) {
if (snapshot.hasError) {
return Text('Something went wrong');
}
if (snapshot.connectionState == ConnectionState.waiting) {
return Text("Loading");
}
return ListView.builder(
itemCount: snapshot.data.docs.length,
itemBuilder: (context, index){
return ListTile(title:Text(snapshot.data.docs[index]['itemName'],
),
);
});
},
),
),
),
],
),
));
我无法解决它,因为当搜索完成时我无法理解错误发生在哪里,我参考了 GitHub 上的任何示例,这些示例都可以正常工作,但是在复制相同的示例时它无法正常工作。请告知正确的实施方式。
我刚开始在搜索框中输入错误。
我提到的例子是这个来自 Github referred sample code
【问题讨论】:
标签: firebase flutter search google-cloud-firestore flutter-listview