如何读取地图中的 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 文档,其中包含颤动中的地图列表

如何使用 Firestore 函数更新地图中的数组?

Firestore使用Rest API更新文档字段

Flutter web:从 Firestore 地图检索的值在添加到列表时被截断

如何使复杂的Firestore规则与地图和列表一起正常工作?