【问题标题】:how to wrap my head around a FireStore query如何绕过 FireStore 查询
【发布时间】:2021-01-22 11:26:40
【问题描述】:

我是Flutter - Firestore的新手

我正在使用 firebase 学习 Flutter 并创建一个示例约会应用

我有一个用户列表,我在流中获取并使用列表视图显示它

Firestore.instance.collection('users').snapshots()

我学会了像这样过滤这个

 .where((user) => user.age < settings.agemax && user.age > settings.agemin))

所有这些都有效。

我还有一个名为 shortlist(当前用户已入围的用户列表)的子集合,我正在使用它,

Firestore.instance.collection('users').document(uid).collection('shortlist').snapshots()

现在我正在尝试使用基于以下过滤器的过滤器重新定义我的第一个查询 GetUsers

  1. 如何从所有用户流中排除我在流中提取的入围用户
  2. 同样,还需要过滤掉“匹配用户”和“屏蔽/拒绝”用户!

我相信我的问题是如何查询用户集合并排除包含在 Shortlist 子集合中的具有 uid 的记录。我打算对匹配和阻止使用相同的逻辑!?我在正确的轨道上吗?

另外...当用户入围/匹配/阻止某人时,我是否需要重新获取所有记录,因为流会改变,或者有没有办法从列表视图中删除一条记录而不重建,我应该分开吗?这个问题一分为二。

【问题讨论】:

    标签: firebase flutter google-cloud-firestore flutter-listview


    【解决方案1】:

    如果我理解正确,您正在寻找(刚刚介绍的)not-in operator,因此我建议您也查看此blog post

    我预计这个算子还没有登陆 Flutter 库,因为这可能需要一些时间。我建议检查即将发布的版本以了解它何时登陆,或在 repo 上检查/提交问题。

    在此之前,无法从查询中排除结果,因此您必须在应用程序代码中对结果进行exclude the items from the stream

    【讨论】:

      猜你喜欢
      • 2020-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      相关资源
      最近更新 更多