Firestore - 用于为每个用户设置数据的逻辑集合架构?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firestore - 用于为每个用户设置数据的逻辑集合架构?相关的知识,希望对你有一定的参考价值。

我正在尝试为我正在构建的角度应用程序实现一个结构,每个用户都有自己的数据集用于登录,因此每个用户都应拥有自己的“费用”,“联系人”,“发票”集合。

根据我的理解,因此应该存在具有用户的uid值的id的文档,这些文档通过查询用户数据的主集合的查询来访问。因此,在firestore控制台的顶级“Contacts”集合中,应该有每个用户的uid标记的文档,然后包含他们自己可用的联系人数组。

演示如下:

Demonstration of proposed firestore database schema/structure

这看起来像是每个用户实施数据的正确方法吗?

答案

数据建模没有单一的“正确”方法。这完全取决于我们的应用程序的用例。

一种选择是为每个用户提供一个包含文档的顶级users集合,然后每个用户都有contactsexpensesinvoices集合。

但这只是一种方式,如上所述,这一切都取决于你的用例。例如,使用上面的模型,您无法在所有用户的发票之间进行查询。如果您希望在两个用户之间共享发票,则需要将其添加到每个用户的/users/$uid/invoices集合中。如果这不符合您的应用程序的用例,那么您可以考虑将发票存储在顶级/invoices集合中,并从每个用户添加对它们的引用。

有一个太大的变化,以完善一个适合所有人的解决方案,这就是为什么没有标准应用程序就找不到标准数据模型的原因。这两者总是齐头并进。

要了解更多信息,我建议您阅读有关NoSQL data modeling的文章。

以上是关于Firestore - 用于为每个用户设置数据的逻辑集合架构?的主要内容,如果未能解决你的问题,请参考以下文章

访问 Firestore 规则中的父文档字段

我需要啥规则才能允许访问 Firestore 中的用户数据?

Firebase Firestore 数据库结构

Firestore/Firebase - 为关注/关注用户帖子建模数据的方法

将文档中的Firestore数据设置为单独的字段

如何将默认反应上下文值设置为来自 Firestore 的数据?