颤振:如何检索以下文档中的字段



我想在所附图像中显示的所有这些文档中检索hasVoteded字段(我在创建的所有文档中都有hasVoteded字段(。下面是我的代码,但它似乎不起作用。我做错了什么,检索这些字段的正确方法是什么?

_checkUserVotes(context, data) async {
bool hasVoted = false;
final record = Record.fromSnapshot(data);
getData() async {
return await Firestore.instance.collection("finance").getDocuments();
}
getData().then((val){
if(hasVoted == true){
return Text("Sorry you have voted already");
}
else if(hasVoted != true){
return GestureDetector(
onTap: () => record.reference.updateData({'votes': record.votes + 1}),
);
}
});
}

这是背靠的

假设您的集合称为财务,您需要访问每个文档中的Map字段。

QuerySnapshot snapshot = await Firestore.instance.collection("finance").getDocuments();
snapshot.documents.forEach((document){
if(document.data != null && document.data['hasVoted']['yourId']){
print('Has voted');
}
});

现在的问题是,我不知道你从哪里得到那yourID财产,但你现在应该这样做了。

如果要从它们全部迭代,只需直接从该映射中使用值即可。

snapshot.documents.forEach((document){
if(document.data['hasVoted'] is Map && (document.data['hasVoted'] as Map).values.first){
print('Has voted');
}
});

但我真的建议你将这些数据解析成一个模型(例如。MyModel.fromData(document)(,这样你就可以真正提高代码的可读性。