【发布时间】:2021-11-01 00:54:42
【问题描述】:
所以我一直在关注 YouTube 的教程,当我尝试通过 Stream 快照从名为“users”的集合中获取“用户名”时,它返回 null。
目的:当点击带有用户名的搜索按钮时显示可用的用户。
下面是代码:
bool isSearching = false;
Stream? usersStream;
TextEditingController searchUsernameEditingController =
TextEditingController();
onSearchBtnClick() async {
isSearching = true;
setState(() {});
usersStream = await DatabaseMethods()
.getUserByUsername(searchUsernameEditingController.text);
setState(() {});
}
Widget searchUserList() {
return StreamBuilder(
stream: usersStream,
builder: (context, AsyncSnapshot snapshot) {
return snapshot.hasData
? ListView.builder(
itemCount: snapshot.data.docs.length,
itemBuilder: (context, index) {
DocumentSnapshot ds = snapshot.data.docs[index];
return Image.network(ds["imgUrl"]);
})
: Center(child: Text("No Users Found"));
});
}
来自 DatabaseMethods():
Future<Stream<QuerySnapshot>> getUserByUsername(String username) async {
return FirebaseFirestore.instance
.collection("users")
.where("username", isEqualTo: username)
.snapshots();
}
始终显示“未找到用户”消息
【问题讨论】:
标签: flutter dart google-cloud-firestore stream snapshot