gpt4 book ai didi

firebase - 使用Firestore快照中的StreamController的StreamBuilder

转载 作者:行者123 更新时间:2023-12-03 04:02:04 24 4
gpt4 key购买 nike

我尝试将Firestore snapshots()加载到StreamController中,以便可以提供给StreamBuilder,以便可以在应用程序中构建新闻提要。

但是得到错误:

The getter 'stream' was called on null.

The method 'add' was called on null.



这是我的代码:
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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com