如何读取地图中的 Firestore 值?
Posted
技术标签:
【中文标题】如何读取地图中的 Firestore 值?【英文标题】:How to read a firestore value in a map? 【发布时间】:2019-05-20 20:32:05 【问题描述】:我正在尝试在我的颤振应用中读取 exp_date
的值,如下图所示:
字段/值对位于名为 Card
的映射中,该映射位于名为 sources
的子集合中。我可以通过输入源集合的 DocId 来读取值(另一个 docId 是 firebase 用户 uid),其中包含以下内容:
StreamBuilder(stream: Firestore.instance.collection('stripe_customers').document(userId).collection('sources').document('qRvDob75kTzhT3').snapshots(),builder: (context,snapshot)
if(!snapshot.hasData)
return new Text("Loading");
var userDocument = snapshot.data;
return new Text(userDocument["card"]['exp_year'].toString());
,),
但显然这不是很实用。如何在不知道文档 ID 的情况下访问 Card map 值?
【问题讨论】:
【参考方案1】:获取文档内容有两种方式:
-
了解其完整的独特路径。
对已知集合进行查询以获取匹配的文档。
如果您不知道 #1 所需的 id,则必须尝试 #2。但是由于您似乎没有办法过滤该集合中的文档,因此您必须获取所有文档。出于可扩展性目的,这可能不是您想要做的。
在编写文档之前,请考虑一下您希望如何在 Firestore 中查找数据。
【讨论】:
谢谢,如果集合中只有一个文档会有所不同吗?正在考虑类似 doc[0] 的内容。 如果只有一个文档,那就给它一个静态的名字,这样你就知道它是什么了。以上是关于如何读取地图中的 Firestore 值?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - 从 Cloud Firestore 读取嵌套地图
使用 StreamBuilder 获取 Firestore 文档,其中包含颤动中的地图列表