我有一个
Querysnapshot snapshot
我可以提供一个索引并访问文档的字段,如下所示:
snapshot.data!.docs[index]
但是,我想访问文档“thisParticularDocument”的字段,这是Cloud Firestore中文档的ID(名称)。我要用
snapshot.data!.docs[thisParticularDocument]
但这并不起作用,因为只能为 docs 提供索引。我想要一个解决方案,最好不涉及异步等待。
wnrlj8wa1#
您可以通过如下方式查找具有特定id的文档,而无需发出新的异步请求:
snapshot.data!.docs.firstWhere((doc) => doc.id == "the document Id").data() as Map<String, dynamic>;
这将从QuerySnapshot中获取特定文档。
QuerySnapshot
dm7nw8vv2#
当你得到一个QuerySnapshot时,你会得到它的所有文档,包括引用和数据。这样你就可以得到一个特定的文档,就像你说的那样:
你可以这样得到文档的数据:
snapshot.data!.docs[index].data() as Map<String, dynamic>
那么你就可以得到它里面的特定字段,如下所示:
(snapshot.data!.docs[index].data() as Map<String, dynamic>)["thisParticularDocument"]
就是这样,如果该字段的值存在,它将被正确返回。
2条答案
按热度按时间wnrlj8wa1#
您可以通过如下方式查找具有特定id的文档,而无需发出新的异步请求:
这将从
QuerySnapshot
中获取特定文档。dm7nw8vv2#
当你得到一个
QuerySnapshot
时,你会得到它的所有文档,包括引用和数据。这样你就可以得到一个特定的文档,就像你说的那样:
你可以这样得到文档的数据:
那么你就可以得到它里面的特定字段,如下所示:
就是这样,如果该字段的值存在,它将被正确返回。