【问题标题】:Exclude list from another list of documents in Firestore - Swift从 Firestore 中的另一个文档列表中排除列表 - Swift
【发布时间】:2021-04-04 18:42:48
【问题描述】:

我在Firestore有2个收藏:

首先我有“已经加载”的用户 ID,

第二个我有所有的用户ID,

如何从在 Firestore 中进行查询的第二个元素中排除第一个元素?

目标是只获取我尚未加载的用户(可选地对结果进行分页)。

有没有使用 Firestore 实现此目的的简单方法?

编辑: 我所说的文档数量最终会变得庞大

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    这在大规模使用单个查询时是不可能的。如您所述,解决这种情况的唯一方法是完全查询两个集合,然后在客户端中编写代码,使用第二组结果中的文档从第一组结果中删除文档。

    事实上,在同一个查询中不可能同时涉及两个集合。没有连接。从查询中排除文档的唯一方法是在单个集合中的文档内容上使用filter

    如果集合很大并且您无法预先计算或缓存结果,那么 Firestore 可能不是满足此类要求的最佳数据库。

    【讨论】:

    • 好的,我明白了你的意思,我想要实现的想法是我有一组卡片(例如在 Tinder 上),每当加载新卡片时,我都会发送卡片uid 作为“已经刷过”到数据库,当我想上传更多卡片时,我想排除用户已经刷过的卡片,所以我查询所有已经刷过的卡片 uid 并将它们排除在查询之外。你是说使用 Firestore 我唯一的选择是让所有用户直接获得并取出已经刷过的用户?就读取而言,它似乎非常昂贵。我正在努力寻找解决这个问题的方法
    • 我希望能正确解释自己
    • 阅读完所有内容后,我的答案没有任何改变。
    • 谢谢,所以使用 Firestore 实现类似 Tinder 的功能是不可能的……老实说,在使用这个数据库构建了我的所有项目后,我感到很痛苦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    相关资源
    最近更新 更多