firebase - Firestore:有没有一种无需阅读即可遍历 document_ID 的方法?
问题描述
标题给出了 TLDR;问题的版本。但我认为下面的细节可以更好地监督这种情况。
我有两个系列
CollectionA
和CollectionB
.CollectionA
对所有用户都可以访问,CollectionB
对每个用户都是本地的。CollectionB
属于一个用户,由包含在. 我们创建这些克隆文档是因为我们希望用户交互是用户独有的,而不是更改在. 换句话说,如果有一天其他用户出现并决定与文档进行交互(随后将文档的克隆创建到他们自己的文档中),则存在的文档需要成为空白原件。CollectionA
CollectionB
CollectionA
CollectionA
CollectionB
我想知道的问题是在考虑上述模式的情况下编写 CRUD 操作的最佳方式是什么。具体来说,我挂断了删除文档CollectionA
并让它扫描并删除用户中存在的所有匹配克隆文档的最佳方法CollectionB
。注意:并非所有用户都克隆了“待删除”文档,因此它不一定作为文档存在于所有用户CollectionB
集合中。
我之前的想法是在 上创建一个子集合CollectionA
,具体来说:CollectionA/{DocumentID}/CurrentUsers/{UserID}
. 每当新用户决定克隆文档时,他们都会被附加到CurrentUsers
子集合中。然后,稍后如果我们决定从中删除文档,CollectionA
我们可以首先遍历该 UserID 的子集合,然后使用每个 ID 找到匹配的用户,并删除匹配的CollectionB
克隆文档(我认为它们可以共享相同的 ID)。
我对这种方法的担忧是,如果 3,000 名用户克隆了该文档,那么第一次 READCurrentUsers
将是 3,000 次读取。我认为返回 3000 个文档是一个非常大的查询。显然,如果我们扩展到 30,000 可能最坏的情况下 3,000,000 个用户,情况只会变得更糟(我是否接近涉及 300 万用户的问题?一点也不。但是,我更愿意编写一个第一次就可以很好地扩展的解决方案! )
将用户的 s写入文档的子集合感觉是一种很好的做法。不过,这取决于我是否有一种方法可以简单地遍历每个文档的 ID,然后找到匹配的用户并删除他们的克隆副本。但是,我不知道。有一个更好的方法吗?UserID
A
CurrentUsers
想法?
- 希望这个例子有意义。
解决方案
推荐阅读
- reactjs - 使用 react-select 反应多步表单不更新状态
- java - 如何将定时任务的执行延迟两年或更长时间
- r - 更改 R 中的字符(Google 趋势数据)
- c++ - 定义类的类枚举常量而不提供对类构造函数的访问
- flutter - Flutter - Local_auth(未启用所需的安全功能)
- azure - 使用相同的文件系统对多个 wordpress azure 应用程序服务/部署槽进行负载平衡
- python - 没有名为“不和谐”的模块
- javascript - 不确定这是否是问这个问题的正确地方,但有人可以帮我了解删除功能在这里的工作方式吗?
- angular - 变量在初始化之前使用
- react-native - 反应本机流错误:计算属性可能只是原始文字值