我尝试将Firestore snapshots()加载到StreamController中,以便可以提供给StreamBuilder,以便可以在应用程序中构建新闻提要。
但是得到错误:
这是我的代码:
StreamController<QuerySnapshot> _localStreamController = StreamController<QuerySnapshot>();
@override
void initState() {
super.initState();
Firestore.instance.collection(‘info’).snapshots().listen((QuerySnapshot querySnapshot) {
// if(userAdded == null) {
_localStreamController.add(querySnapshot);
// }
});
...
child: StreamBuilder(
stream: _localStreamController.stream,
builder: (context, snapshot) {
有人知道解决方案吗?
谢谢!
最佳答案
您需要初始化流
替换此行:
StreamController<QuerySnapshot> _localStreamController = StreamController<QuerySnapshot>();
与:StreamController<QuerySnapshot> _localStreamController = StreamController.broadcast();
然后,在构建器中,您将需要考虑尚未加载的数据。因此显示加载屏幕或其他内容可能会很有用。像这样:if (!snapshot.hasData || snapshot.data.documents.length == 0) {
return Center(child: const Text('Loading ...'));
}
关于firebase - 使用Firestore快照中的StreamController的StreamBuilder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54944875/