firebase - 如何读取 map 中的 firestore 值?

标签 firebase dart flutter google-cloud-firestore

我正尝试在我的 flutter 应用中读取 exp_date 的值,如下图所示:

enter image description here

字段/值对位于名为 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 映射值?

最佳答案

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

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

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

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

关于firebase - 如何读取 map 中的 firestore 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56227792/

相关文章:

html - 登录时隐藏可选的导航栏菜单 - Angular 8

php - Firebase 身份验证 JS/PHP

android - 如何在 Firestore 中检索子集合的文档?

flutter - 如何在Dart中嵌套流(将流映射到流事件)?

flutter - 从异步方法返回多个结果?

java.lang.ClassCastException : java. util.HashMap 无法转换为 java.lang.String

mongodb - Pubspec.yaml引发不一致的错误并且没有冲突

android - 如何在flutter中将第三方android库导入java文件

firebase - 无法从Firebase中的文本字段表单保存数据

tensorflow - 将自定义 AutoML tflite 模型与 Flutter 应用程序集成