Flutter Firestore 使用异步检索所有文档内容
Posted
技术标签:
【中文标题】Flutter Firestore 使用异步检索所有文档内容【英文标题】:Flutter Firestore retrieve all document contents using async 【发布时间】:2019-12-15 23:46:22 【问题描述】:使用 print(await _getAllMessages()); 调用时没有返回消息
我正在尝试从指定集合中的每个文档中检索数据。我想把这个文档变成一个字符串并打印到控制台。
_getAllMessages() 异步 // 打印(数据["消息"]));
String messages = "Copy of message body below: \n";
Firestore.instance
.collection('rooms')
.document('roomA')
.collection('messages')
.snapshots()
.listen((data) => data.documents.forEach(
(doc) => messages += doc.data.toString(),
));
return messages;
【问题讨论】:
【参考方案1】:有两个问题,首先你应该使用 .getDocuments
函数而不是 .listen
,其次返回应该在 .getDocuments
函数内(或使用异步等待)。
_getAllMessages() async
String messages = "Copy of message body below: \n";
Firestore.instance
.collection('rooms')
.document('roomA')
.collection('messages')
.getDocuments((data) => data.documents.forEach(
(doc) => messages += doc.data.toString(), );
return messages;
);
【讨论】:
以上是关于Flutter Firestore 使用异步检索所有文档内容的主要内容,如果未能解决你的问题,请参考以下文章
Flutter web:从 Firestore 地图检索的值在添加到列表时被截断
Flutter 使用 Stream 检索 Firestore 集合
Flutter Firestore:从 Firestore 中检索数据并在 Flutter 中显示为小部件
如何使用 Flutter 中的 UserID 从 Firebase Firestore 检索数据?