程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs'大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs'?

开发过程中遇到没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs'的问题如何解决?下面主要结合日常开发的经验,给出你关于没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs'的解决方法建议,希望对你解决没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs'有所启发或帮助;

迁移到空安全后出现错误 未为类型“AsyncSnapshot”定义 getter 'docs'。 尝试导入定义“docs”的库,将名称更正为现有 getter 的名称,或者定义名为“docs”的 getter 或字段。

错误所在的代码片段

    return FutureBuilder(
      future: searchResultsFuture,builder: (context,snapshot) {
        if (!snapshot.hasData) {
          return circularProgress();
        }
        List<UserResult> searchResults = [];
        snapshot.docs.forEach((doC) {    //have error here
          User user = User.fromdocument(doc);
          UserResult searchResult = UserResult(user);
          searchResults.add(searchResult);
        });
        return ListVIEw(
          children: searchResults,);
      },);
  } 

搜索结果未来


  handleSearch(String query) {
    Future<querySnapshot> users =
        usersRef.where("displayname",isGreaterThanorequalTo: query).get();
    setState(() {
      searchResultsFuture = users;
    });
  }

  clearSearch() {
    searchController.clear();
  }

解决方法

您代码中的 snapshot 是一个 AsyncSnapshot,它确实没有 docs 子代。要从 Firestore 获取文档,您需要使用:

snapshot.data.docs

另请参阅 listening for realtime data 上的 FlutterFire 文档,其中包含显示此示例的示例 - 我的回答在这里解释了所有快照类型:what is the difference between exisTing types of snapshots in Firebase?

,

通常,检索数据需要几毫秒的时间,所以我尝试这样做 确保在检索数据后执行我的操作

return StreamBuilder<QuerySnapshot>(
    stream: Collectionreference
        .snapshots(),builder: (BuildContext context,AsyncSnapshot<QuerySnapshot> activitySnapshot) {
      if (activitySnapshot.hasError) {
        return  Center(
              child: Text('Something went wrong'),);
      }
      if (activitySnapshot.connectionState == ConnectionState.waiTing) {
        return Center(
                child: SpinKitWave(
              color: constants.AppMainColor,itemCount: 5,size: 40.0,)));
      }
      if (!activitySnapshot.hasData || activitySnapshot.data.docs.isEmpty) {
        return Center(
              child: Text('Nothing to Display here'),);
      }
      if (activitySnapshot.hasData) {
         activitySnapshot.data.docs.forEach(doc=>{
            print(doc);
          })
      }
     }
   });

大佬总结

以上是大佬教程为你收集整理的没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs'全部内容,希望文章能够帮你解决没有为“AsyncSnapshot<Object?>”类型定义 getter 'docs'所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。