firebase - 未从 firebase 数据库获取数据。流转换器错误
问题描述
我刚刚更新了我的颤振应用程序中的软件包。所有功能之前都可以正常工作,但在我对代码进行更改(即,将文档更改为 doc,将 getDocuments 更改为 get 等)之后,它没有从 firebase 获取数据。
这段代码应该从 firebase 中的“事件”集合中获取特定事件。在另一个页面中,我显示它们。
错误消息是说它与下面代码中的 StreamTransformer 行有关。
错误消息:AsyncSnapshot<Stream<List<DocumentSnapshot<Object?>>>>(ConnectionState.done, null, type '_StreamHandlerTransformer<QuerySnapshot<Object?>, List<DocumentSnapshot<Object?>>>' 不是类型的子类型'StreamTransformer<QuerySnapshot<Map<String, dynamic>>, List<DocumentSnapshot>>', #0 EventProvider._getListOfHosting
//get events
Future<Stream<List<DocumentSnapshot>>> _getListOfHosting({
@required String currentUserId,
//@required bool isHosting,
@required bool isPresent,
//bool isGetRequest = false,
}) async {
return _firestore.collection('events').snapshots().transform(
StreamTransformer<QuerySnapshot, List<DocumentSnapshot>>.fromHandlers(
handleData: (querySnapshot, sink) async {
print('loading friend list of $currentUserId');
final eventList = await _firestore
.collection('events')
.where('host', isEqualTo: currentUserId)
.get();
print(eventList);
//event list contains all events that have the host as current user
final _hostsList = List<DocumentSnapshot>();
final _presentHostList = List<DocumentSnapshot>();
print('HostList: $_hostsList');
for (final doc in eventList.docs) {
if (DateTime.parse(doc.get('date'))
.day
.compareTo(DateTime.now().day) <=
0) {
_presentHostList.add(doc);
}
_hostsList.add(doc);
}
print('_hostList: $_hostsList');
if (isPresent) {
sink.add(_presentHostList);
} else {
sink.add(_hostsList);
}
},
),
);
截至目前,我被困在加载循环屏幕中。我究竟做错了什么?
解决方案
推荐阅读
- c# - AspNet 用户声明丢失
- google-apps-script - getActiveCell() 总是返回 1,1
- ansible - Ansible 测试变量以什么开头
- android - 在 Android 中将字符串作为文件附件共享
- swift - 如何告诉用户准确的度数是朝北还是朝东?
- scala - Cats - EitherT - 发散隐式扩展以进行理解而无需显式输入?
- javascript - E/configParser - ReferenceError: 元素未定义
- bazel - 替换和 Java 库生命周期
- excel - VBA:如何根据包含某些字符的相邻单元格删除列?
- javascript - 用 Javascript 比较日期不起作用