如何全神贯注于 FireStore 查询

how to wrap my head around a FireStore query

我是 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 的记录。我打算对匹配和阻止使用相同的逻辑!?我在正确的轨道上吗?

另外...当用户 shortlists/matches/blocks 某人时,我是否需要重新获取所有记录,因为流会改变,或者有没有办法从列表视图中删除一条记录而不重建,可能是我应该把这个问题一分为二。

如果我没理解错的话,您正在寻找(刚刚介绍的)not-in operator, so I recommend also checking out this blog post

我预计此运算符尚未登陆 Flutter 库,因为这可能需要一些时间。我建议检查即将发布的版本以查看它何时登陆,或者 checking/filing 存储库中的问题。

到那时,无法从查询中排除结果,因此您必须在应用程序代码中排除 exclude the items from the stream 个结果。