因此,我试图从Firestore流数据,但当打印数据时,我得到:
I/扑动(8356):闭包:()=〉从函数'data'Map〈字符串,动态〉:.
我使用下面的代码来获取数据:
void messagesStream() async {
Stream collectionStream = _firestore.collection('messages').snapshots();
await for (var snapshot in collectionStream) {
for (var message in snapshot.docs) {
print(message.data());
}
}
当新数据被添加到消息集合时,我得到了Closure消息,因此它正在与数据库交互。
我想要的是打印出集合中新文档的内容。
任何帮助都很感激。
4条答案
按热度按时间cig3rfwq1#
这并不是迭代Stream结果的方式,如果你有一个Stream并且你想处理它的结果,你应该使用
listen()
异步接收结果。另请参阅:Firestore collection query as stream in flutter
您可能还想查看documentation,了解如何在Flutter中查询Firestore。
5sxhfpxr2#
这是工作检查这和调用getMessages()无论你想要一个调用
wb1gzix03#
我在几乎完全相同的代码中遇到了同样的问题(没有Stream变量)。我的建议是完全删除Stream变量(我测试了下面的代码,让它打印Firestore数据库中的数据):
或者,尝试添加QuerySnapShot作为Stream变量的数据类型(untested):
您还可以通过创建一个新的返回StreamBuilder的无状态小部件(MessagesStream)来替换整个方法:
......并在测试时以您认为合适的任何名称命名:
***如果您使用无状态小部件路径,请确保将_fireStore(应该是FirebaseFirestore.示例)设置为全局变量。
rsaldnfx4#
我在尝试抛出自定义错误类
InkError
时收到此错误:toMap
。墨水错误