Firebase 每次小部件重新生成时,侦听器都会再次运行

Firebase 每次小部件重新生成时,侦听器都会再次运行,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我想听听firestore数据库中是否有持续变化。但它在小部件重建(idk)时运行 因为初始化状态?但是为什么侦听器不阻止fonc?) class\u活动屏幕扩展状态{ 最终GlobalKey脚手架键=GlobalKey(); @凌驾 void initState(){ super.initState(); checkFocChanges(); } checkFocChanges()异步{ var reference=Firestore.instance.collection('etkinlik

我想听听firestore数据库中是否有持续变化。但它在小部件重建(idk)时运行 因为初始化状态?但是为什么侦听器不阻止fonc?)

class\u活动屏幕扩展状态{
最终GlobalKey脚手架键=GlobalKey();
@凌驾
void initState(){
super.initState();
checkFocChanges();
}
checkFocChanges()异步{
var reference=Firestore.instance.collection('etkinlikler').orderBy('sıra');
reference.snapshot().listen((querySnapshot){
querySnapshot.documentChanges.forEach((更改){
重置数据库(变更、文件、数据);
});
});
}
作废重置数据库(文件){
打印(文档['ad'].toString());}
@凌驾
小部件构建(构建上下文){
返回BlocProvider(
生成器:(BuildContext context)=>ActivitiesBloc(),

我真的需要firestore和Flatter之间的帮助。

你在哪里更新状态?我们可能需要更多的代码来查找问题?我编辑了代码,我不会从任何其他地方调用checkfocchanges。作为一名新手,如果firestore文档发生更改,我想刷新我的本地数据库(与firestore相同)我编码了本地数据库(bloc和sembast)现在我只需要听一下change firestore:/我花了一整天的时间请1)你想如何获得更新,何时更新,何时加载应用程序?
class _ActivityScreen extends State<ActivityScreen> {
  final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey();

  @override 
  void initState(){
    super.initState();

    checkFocChanges();    
  }

  checkFocChanges() async {
    var reference = Firestore.instance.collection('etkinlikler').orderBy('sıra');
    reference.snapshots().listen((querySnapshot) {
      querySnapshot.documentChanges.forEach((change) {
        resetDb(change.document.data);                    
      });
    });
  }
  void resetDb(documents){
    print(documents['ad'].toString());}
    @override
    Widget build(BuildContext context) {
      return BlocProvider(
        builder:(BuildContext context ) => ActivitiesBloc(),