gpt4 book ai didi

firebase - 在 Firestore 中存储(可能)巨大列表的最佳方式是什么?

转载 作者:行者123 更新时间:2023-12-04 00:02:01 25 4
gpt4 key购买 nike

我有一个包含大量用户及其详细信息的用户集合。我还有一个通知集合,用户可以查询。我预计这些年的通知数量至少会达到数千,但可能会达到数万。

我希望用户能够将通知标记为“已看到”。我该怎么办?

我考虑过以下选项:

  • 向每个用户文档添加一个数组notificationsSeen,其中包含对通知文档的引用。但是,如果用户已经看到例如,我害怕在这里达到大小限制。 50k 条通知。
  • 在用户中添加相同但作为子集合。不过我不知道该怎么做,因为我真的只需要一个属性(通知 ID)。我是否将通知 ID 作为子集合文档 ID 并且文档上没有字段?我是否让 Firestore 生成随机 ID 并将通知 ID 作为属性分配给子集合?
  • 向每个通知文档添加一个数组seenBy,其中包含对用户文档的引用。虽然这将允许用户查看其他用户看到了哪些通知,但我不希望这样。

希望你能帮助我,我没有想法,我不确定如何实现我迄今为止最好的想法(用户的子集合),这里也提到了它作为解决方案:Firestore storage size limit how to store large arrays (但没有实现细节)。

最佳答案

唯一在 Firestore 中存储任意大数据列表的可扩展方式是使用集合中的文档。数组类型字段无法针对不断增长的数据列表进行扩展,因为这些项目最终将超过单个文档的 1MB 大小限制,这显然会导致规模问题。

可以有一个没有字段的文档。如果您需要做的只是记录文档存在以便稍后在该集合中检查它的存在,那很好。如果您绝对确定 ID 符合 Firestore 中的有效 ID,则可以使用通知 ID 作为文档 ID。否则,你应该给它一个随机的ID,并将通知ID作为一个字段放在文档中,以便以后查询。

您需要熟悉the documentation on Firestore limits ,其中涉及文档的最大大小,以及 Firestore 文档 ID 的有效字符。

关于firebase - 在 Firestore 中存储(可能)巨大列表的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59612263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com