5 dart firebase flutter google-cloud-firestore
我有一个集合,其中每个用户都有自己的文档。在文档中,我为新条目创建了一个地图。该文档看起来像这样:
在我的应用程序中,我想获取文档,然后将其转换为一个列表,其中每个地图(按时间标题)将是一个条目。我尝试循环遍历它,但问题是 中没有 forEach()DocumentSnapshot.data()
并且它是_JsonDocumentSnapshot
.
如何将其作为列表获取2021-05-30 20:49:59.671705
,其中2021-05-30 20:50:00:600294
, , ... 是列表中的各个元素。我计划使用诸如 a 之类的东西自己构建每个条目,ListView.builder()
所以我想要一个所有这些条目的列表。
编辑:我的代码看起来像这样:
journal
只是一个DocumentReference
.
journal.snapshots().forEach((element) {
var data = element.data();
print(element.data());
(data ?? {}).forEach((key, value) {
return JournalEntryData(
date: key,
entryText: value['entryText'],
feeling: value['feeling']);
});
});
Run Code Online (Sandbox Code Playgroud)
小智 3
问题是data
设置的类型element.data()
因此未定义Object?
该方法。forEach()
我尝试将 a 转换element.data()
为 a List
,这导致了错误,所以我没有沿着这条路走得更远。我应该做的就是选element.data()
一个Map
有效的演员。我还应该使用journal.get()
and notsnapshots()
因为它是一个流,所以await
关键字会导致journal.snapshots().forEach()
永远不会结束。
最终的代码看起来像这样:
Future<List<JournalEntryData>> getJournalEntries() async {
List<JournalEntryData> entries = [];
await journal.get().then((document) {
Map data = (document.data() as Map);
data.forEach((key, value) {
print('adding entry');
entries.add(JournalEntryData(
date: key,
entryText: value['entryText'],
feeling: value['feeling'],
));
});
});
return entries;
}
Run Code Online (Sandbox Code Playgroud)
我会执行以下操作来获取条目:
var entries = await getJournalEntries();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5683 次 |
最近记录: |