flutter - 如何访问子列表数据并在 Dart/Flutter 中的函数中返回?
问题描述
我创建了一个新函数,并将 Firebase 快照流作为streamFinal
传入函数的变量传递:
Future<List<ChatMessage>> _prepareListData(streamFinal) {
List<ChatMessage> msgList = [];
int counter = 0;
// objects map
streamFinal.map((event) {
// documents map
event.docs.map((item) {
Map<String, dynamic> uData = item.data() as Map<String, dynamic>;
ChatMessage messageInfo = ChatMessage(
encMessageId: uData['encMessageId'] ?? "",
encSenderUId: uData['encSenderUId'] ?? "",
encReceiverUId: uData['encReceiverUId'] ?? "",
contentType: uData['contentType'] ?? "",
fileType: uData['fileType'] ?? "",
fileTitle: uData['fileTitle'] ?? "",
filename: uData['filename'] ?? "",
fileSize: uData['fileSize'] ?? "",
fileDuration: uData['fileDuration'] ?? "",
message: uData['message'] ?? "",
sentOn: uData['sentOn'] ?? Timestamp.now(),
seenOn: uData['seenOn'] ?? Timestamp.now(),
sent: uData['sent'] ?? false,
received: uData['received'] ?? false,
seen: uData['seen'] ?? false,
);
msgList.add(messageInfo);
counter = counter +1;
print("counter: $counter");
// printing counter from 1 to 19 means we have 19 records of messageInfo variable
}).toList();
}).toList();
print('prepare msgList length: ${msgList.length} == $counter');
// prepare msgList length: 0 == 0
return msgList;
}
这个函数在计数器被打印 19 次时返回一个包含空元素的空白列表。我知道我有 19 条记录,但无法将所有记录添加messageInfo
到msgList
变量中。
有没有人有这样的经验并帮助我解决这个问题?非常感谢。
解决方案
推荐阅读
- php - 如何重写htaccess文件使其不会替换根文件夹
- javascript - D3 条形图轴未正确缩放
- c# - 从 Nlog 配置调用控制器中的方法
- database - 如何在mongodb中使用skip和limit删除冗余数据
- reactjs - 使用注入的 intl 模拟反应类方法
- matplotlib - 修复由赛璐珞创建的动画中的图例
- javascript - 如何通过增加
- reactjs - 对象作为 React 子级无效,呈现单个数字
- git - MAC + git gui -> 包“Tcl”的版本冲突:有 8.5.9,需要 8.6
- android - Glide 不会将图像放入 imageView