使用 Firestore 进行 Flutter 搜索委托(delegate)

标签 flutter dart google-cloud-firestore

我正在使用 Flutter Search Delegate 实现搜索功能,数据存储在 Firestore 中。我不明白为什么会出现这个错误。

Widget buildSuggestions(BuildContext context) {
  return StreamBuilder(
    stream: Firestore.instance.collection('todos').snapshots(),
    builder: (context, snapshot) {
      if (!snapshot.hasData) return new Text('Loading...');

      final results =
          snapshot.data.documents.where((a) => a['title'].contains(query));

      return ListView(
        children: results.map<Widget>((a) => Text(a['title'])).toList(),
      );
    },
  );
}

错误:

类型“(dynamic)=>dynamic”不是“test”类型“(DocumentSnapshot)=>bool”的子类型

最佳答案

更换线路

final results = snapshot.data.documents.where((a) => a['title'].contains(query));

final results = snapshot.data.documents.where((DocumentSnapshot a) => a.data['title'].contains(query));

还有这条线

children: results.map<Widget>((a) => Text(a['title'])).toList()

children: results.map<Widget>((a) => Text(a.data['title'])).toList()

关于使用 Firestore 进行 Flutter 搜索委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58587696/

相关文章:

flutter 网络 : Is it Firebase Analytics support in Flutter web application?

flutter - 什么是 flutter 中的 onUnknownRoute

flutter 2.0 : How to create a model class for firestore snapshot

flutter - Flutter-火焰与国际化?

android - Firestore 如何在回收站 View 中从 firestore 检索数据

firebase - 查询无法在运行时更改条件的Firestore

flutter - 创建数据库时 I/flutter ( 9532) : Binding has not yet been initialized,

flutter - 通过在Flutter中拖动项目,是否可以对 ListView 构建器中的项目进行重新排序?

dart - 如何在 Dart 中测试函数的存在?

Flutter for 循环生成小部件列表