【问题标题】:How to read a firestore value in a map?如何读取地图中的 Firestore 值?
【发布时间】: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 值?

【问题讨论】:

    标签: firebase dart flutter google-cloud-firestore


    【解决方案1】:

    获取文档内容有两种方式:

    1. 了解其完整的独特路径。
    2. 对已知集合进行查询以获取匹配的文档。

    如果您不知道 #1 所需的 id,则必须尝试 #2。但是由于您似乎没有办法过滤该集合中的文档,因此您必须获取所有文档。出于可扩展性目的,这可能不是您想要做的。

    在编写文档之前,请考虑一下您希望如何在 Firestore 中查找数据。

    【讨论】:

    • 谢谢,如果集合中只有一个文档会有所不同吗?正在考虑类似 doc[0] 的内容。
    • 如果只有一个文档,那就给它一个静态的名字,这样你就知道它是什么了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 2022-01-08
    • 2021-09-30
    • 2022-01-21
    • 2020-02-06
    • 1970-01-01
    相关资源
    最近更新 更多