来自特定类型数据的 Flutter 和 Firebase 流

1 firebase flutter google-cloud-firestore

我正在尝试制作一个带有 flutter 和 firebase 的应用程序。目前,我使用流生成器显示了应用程序中的列表。我有一个显示所有帖子的流

\n\n
Stream _streamAll = Firestore.instance.collection(\'postings\').snapshots();\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我只是想按类别显示帖子。两个类别是艺术与文化和体育赛事。我尝试只显示体育赛事类别中的帖子,如下所示

\n\n
 Stream _sportsStream = Firestore.instance.collection(\'postings\').where(\n  \'type\' == \'Sporting Events\').snapshots();\n
Run Code Online (Sandbox Code Playgroud)\n\n

但得到这个错误

\n\n

\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90 (2 )小部件库捕获的异常 \xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2 \x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95 \x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90 \xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2 \x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95 \x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90 \xe2\x95\x90\xe2\x95\x90
\n支持的[字段]类型为[String]和[FieldPath]。
\n \'package:cloud_firestore/src/query.dart\':
\n断言失败:第 131 行 pos 12: \'字段是字符串 || 字段是 FieldPath\' 用户创建的导致错误的小部件的祖先是:
\nScaffold [链接到出现问题的文件]

\n\n

希望有人知道解决这个问题。

\n\n

我的 Firestore 控制台中的类别如下所示:

\n\n

字段:类型
\n类型:字符串
\n值:[myCategoryName]

\n\n

来自 firebase 控制台的关于我想要获取的内容的图像

\n\n

谢谢

\n

Pet*_*dad 7

改变这个:

Firestore.instance.collection('postings').where(
  'type' == 'Sporting Events').snapshots();
Run Code Online (Sandbox Code Playgroud)

进入这个:

Firestore.instance.collection('postings').where(
  'type', isEqualTo: 'Sporting Events').snapshots();
Run Code Online (Sandbox Code Playgroud)

==您不能在方法内部使用where(),而是使用isEqualTo

https://github.com/FirebaseExtended/flutterfire/blob/master/packages/cloud_firestore/cloud_firestore/lib/src/query.dart#L123