firebase - Flutter,是否可以在没有窗口小部件构建方法的情况下在功能中使用Firestore Stream Builder?

标签 firebase flutter dart stream-builder

我有一个函数,该函数获取Google Places搜索商店的结果并搜索Firestore以查看商店是否已在数据库中。

每当我运行它时,它都会认为Stream Builder无所作为。

我认为问题在于该函数不在小部件内并且没有构建方法。这是代码:

  void searchStores() async {
    Prediction newStore = await PlacesAutocomplete.show(
        context: context,
        apiKey: kGoogleApiKey,
        mode: Mode.overlay,
        language: "en",
        components: [new Component(Component.country, "au")]);

    await places.getDetailsByPlaceId(newStore.placeId).then((detailStoreInfo) {

      print('running 1');

      StreamBuilder (
          stream: Firestore.instance.collection('stores').document(detailStoreInfo.result.id).snapshots(),
          builder: (BuildContext context, AsyncSnapshot snapshot){

            print('running 2');

            setState(() {
              if (snapshot.connectionState == ConnectionState.active &&
                  snapshot.hasData){

                print('running 3');

                if (snapshot.data['veganOnly'] == null || snapshot.data['veganOnly'] == false){

                  print('running 4');

                  setState(() {
                    firstStore = true;
                  });

                }
              }
            });

            return null;

          }
      );

    });
  }

如您所见,我添加了打印语句来确定代码失败的地方。显示“正在运行1”,因此场所正在返回响应。

但是没有其他语句(2,3或4)正在打印,因此流构建器似乎无法正常工作,甚至没有返回空值。

我还尝试在流生成器之前放置一个返回值,但这也没有任何效果。

我是否认为这是正确的,因为它不在小部件的构建方法中,或者完全不是其他东西。

谢谢

最佳答案

StreamBuilderWidget,因此必须像在Text小部件中一样,将其插入小部件树中的某个位置。只需将其传递给流,然后在builder回调中返回另一个小部件

关于firebase - Flutter,是否可以在没有窗口小部件构建方法的情况下在功能中使用Firestore Stream Builder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57951293/

相关文章:

android - 从 recyclerview 中的 firebase 实时数据库访问数据

android - 无法读取 Firebase 数据库

android - 从 Firebase Storage 下载视频 - 逐 block 下载

git - 我应该将Flutter/Dart中生成的代码提交到VCS吗

intellij-idea - Flutter 导入随机停止工作,原因不明

firebase - Exists() 不适用于第二个变量 Cloud Firestore 规则

flutter - 图像资源在 Web 上加载良好但在移动设备上加载不佳

firebase - Firestore如何从文档快照流中的快照访问值

dart - 酒吧升级降级了我的主包

ios - 如何在 Swift native 代码中从 Flutter 调用参数?