【发布时间】:2021-10-25 05:38:53
【问题描述】:
我正在使用包search_page
这是我的 Firestore,我的用户名为 Test User One 和 Test User Two 这是我的 FloatingActionButton( ) 代码
FloatingActionButton(
onPressed: () => showSearch(
context: context,
delegate: ChatSearch(),
),
child: Icon(Icons.chat),
),
这是我的 ChatSearch() 代码
class ChatSearch extends SearchDelegate {
FirebaseFirestore _fires = FirebaseFirestore.instance;
Future<QuerySnapshot> getUserInfo() async {
return await _fires.collection("Students").where("displayName", isEqualTo: query).get();
}
...
@override
Widget buildResults(BuildContext context) {
return Column(
children: [
FutureBuilder(
future: getUserInfo(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) {
return Text('No user found.');
}
else if (snapshot.connectionState == ConnectionState.waiting) {
return Text('Loading ...');
}
return ListView.builder(
shrinkWrap: true,
itemCount: snapshot.data.docs.length,
itemBuilder: (BuildContext context, int index) {
var result = snapshot.data.docs[index];
return ListTile(
title: Text(result["displayName"]),
subtitle: Text(result["society"]),
leading: CircleAvatar(backgroundImage: NetworkImage(result["photoUrl"]),),
);
},
);
}),
],
);
}
}
如何获取查询(所有与搜索匹配的用户名)而不是 isEqualTo? 比如我搜索Test User,会出现Test User One和Test User 2
如果有人可以帮助我或为我提供一些指导,我将不胜感激。谢谢。
【问题讨论】:
标签: firebase flutter google-cloud-firestore