【发布时间】:2020-04-07 06:56:47
【问题描述】:
我正在尝试为用户构建包含事件的时间线。
要构建此时间线,我将运行一个执行以下操作的查询:
- 返回用户的朋友准备参加的所有活动。
我现在拥有的:
- client-side:一个用户所有朋友的 id 列表:例如。 ['a', 'b', 'c', 'd', 'e']
-
服务器端:包含所有事件的 Firestore 集合:
事件/事件ID
这个文档有一个值“going”,它是一个包含所有“going”用户 ID 的列表。 ['d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm']
(例如,查询应该返回此文档,因为有 2 个朋友要去)
一个简单的解决方案是:
获取所有事件并在客户端比较两个列表。问题:对于 100 个文档来说没问题,但如果集合规模扩大则不可能。 (因为 Firstore 会在文件上读取账单。)
有没有更好的方法来做到这一点(使用 Firestore)?
或者这在 Firestore 中是不可能的吗?是否有其他技术可以做到这一点?
提前致谢!
【问题讨论】:
-
这是一个既宽泛又不清楚的问题。您正在构建一个时间线,但您的数据是基于朋友表示“去”的方式,这并不是真正的时间线。此外,我们对您的数据或这些数据的相关性一无所知。您能否包括您尝试过的代码,更清晰的数据定义,您是否还可以澄清所要求的内容?请花点时间查看How do I ask a good question? 和How to create a Minimal, Complete, and Verifiable example。更新,我们来看看!
-
谢谢!我更新了问题,如果现在清楚,请告诉我。
标签: sql database firebase google-cloud-firestore