我正尝试在我的 flutter 应用中读取 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 映射值?
最佳答案
获取文档内容有两种方式:
- 了解其完整的、独特的路径。
- 对已知集合进行查询以获得匹配文档。
如果您不知道#1 所需的 ID,则必须尝试#2。但是由于您似乎没有办法过滤该集合中的文档,因此您将不得不获取所有文档。出于可扩展性目的,这可能不是您想要做的。
在编写文档之前,考虑一下您希望如何在 Firestore 中查找数据。
关于firebase - 如何读取 map 中的 firestore 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56227792/