【问题标题】:Firebase how to filter collection with a sub collectionFirebase如何使用子集合过滤集合
【发布时间】:2020-11-24 03:38:47
【问题描述】:

我有一个名为“帖子”的集合。 Posts 有一个名为“feedback”的子集合。

当用户对帖子提供反馈时,他的 id 和评论会被添加到反馈子集合中。

现在我想查找用户没有给出反馈的帖子。

类似于下面的 sql 查询

select * from posts where userId not in (select userId from feedback)

有人可以就如何做到这一点提供建议吗?

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    Firestore 不支持集合或子查询之间的连接。您将无法执行使用来自多个集合的数据的任何查询。

    此外,Firestore 不支持查询不存在。因此,您将无法查询字段中是否缺少数据。 Firestore 要求所有查询都能够使用高性能索引,该索引仅跟踪文档中存在的数据。

    【讨论】:

    • 感谢您的回答。我们必须使用什么方法来做到这一点?
    • 你需要在主帖子对象上维护一些字段(比如hasGivenFeedback),为了保持同步,你可以编写一个firebase云函数来监听反馈收集,并将此值写入相应的帖子。如果你是有 SQL 背景的,一开始可能很难接受,我自己也遇到了麻烦,但是这种重复对于 NoSQL 数据库来说是正常的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多