【问题标题】:Flutter & Firebase stream from certain type of data来自特定类型数据的 Flutter 和 Firebase 流
【发布时间】:2026-02-07 12:00:01
【问题描述】:

我正在尝试使用 Flutter 和 Firebase 制作应用程序。目前,我使用流构建器显示了来自应用程序的列表。我有一个显示所有帖子的流

Stream _streamAll = Firestore.instance.collection('postings').snapshots();

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

 Stream _sportsStream = Firestore.instance.collection('postings').where(
  'type' == 'Sporting Events').snapshots();

但得到这个错误

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

希望有人知道解决此问题的方法。

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

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

image from firebase console on what I'm trying to get

谢谢

【问题讨论】:

  • 你得到了什么结果?
  • ════════ (2) 小部件库捕获的异常══════════════════════════ ═════════════════════════ 支持的[字段]类型是[字符串]和[字段路径]。 'package:cloud_firestore/src/query.dart': 断言失败: line 131 pos 12: 'field is String ||字段是 FieldPath' 用户创建的导致错误的小部件的祖先是:Scaffold [链接到问题发生的位置]

标签: firebase flutter google-cloud-firestore


【解决方案1】:

改变这个:

Firestore.instance.collection('postings').where(
  'type' == 'Sporting Events').snapshots();

进入这个:

Firestore.instance.collection('postings').where(
  'type', isEqualTo: 'Sporting Events').snapshots();

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

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

【讨论】:

    最近更新 更多