【发布时间】:2021-07-25 05:19:36
【问题描述】:
如何在所有文档中搜索特定字段值
例如:如果我想要字段:所有文档中的 blood_group 'A+' 并显示所有包含“A+”的文档
https://i.stack.imgur.com/0IhT9.png
【问题讨论】:
标签: android firebase flutter google-cloud-firestore
如何在所有文档中搜索特定字段值
例如:如果我想要字段:所有文档中的 blood_group 'A+' 并显示所有包含“A+”的文档
https://i.stack.imgur.com/0IhT9.png
【问题讨论】:
标签: android firebase flutter google-cloud-firestore
您可以在集合引用的查询中使用.where 过滤器,如下所示:
final QuerySnapshot querySnapshot = await FirebaseFirestore.instance.collection('users').where('blood_group', isEqualTo: 'A+').get();
final List<QueryDocumentSnapshot> documentSnapshotList = querySnapshot.docs;
for (QueryDocumentSnapshot snapshot in documentSnapshotList) {
print(snapshot.data());
}
【讨论】:
await 添加到解决方案中。您能否发布与该问题相关的项目代码部分?这将有助于使这更容易。
您可以使用.where 选项。根据您在图片中的 firebase 结构,您可以使用以下代码,获取满足您要求的所有文档的列表。
Future<QuerySnapshot> bloodgroup (String bloodGroup) async {
return await FirebaseFirestore.instance.collection('Donation').where('blood_group', isEqualTo: bloodGroup).get();
}
void getDocs() async {
QuerySnapshot allResults = await bloodgroup('A+');
for (var item in allResults){
print(item.id); //this will print the id of all the documents which are A+.
}
}
【讨论】: