如何正确构建Firebase数据库?

时间:2017-05-19 10:15:10

标签: ios swift firebase data-structures firebase-realtime-database

我阅读了一些关于如何正确构建数据的Firebase数据库结构指南(没有数据嵌套),但我有一个问题。 所以,我有一个使用Firebase数据库的iOS应用程序。用户需要登录/注册。 在数据结构方面,我的数据库如下所示:

-Database
---Users
-----User1
--------username: johndoe
---------email: johndoe@test.com
---------display_name: John Doe
-----User2 {....}
-----User3 {....}

现在,让我们想象一下,我有100K用户。每次注册新用户时,我都会检查用户名和用户名。电子邮件已经存在于数据库中,如果他们没有创建新的用户帐户。

我的问题是 - 我是否需要创建一个仅包含用户名的新对象和另一个仅包含电子邮件的对象?我问这个是因为我担心如果我遍历Users对象,我可能会下载数百兆字节,以检查用户名和电子邮件是否已经存在。

1 个答案:

答案 0 :(得分:0)

Firebase不允许重复用户(身份验证名称)。因此,当您调用createUser时,如果用户已存在,firebase将返回错误。

其次,如果您在Firebase中为特定项目执行query,则除非找到该项目,否则您不会下载任何内容。因此,无论是10个还是100k个用户节点,在执行与查询匹配的节点之外的任何查询时都不会下载任何内容,如果存在重复的用户,则只会是一个查询。但是,由于Firebase拒绝重复的身份验证名称,因此不需要这样做。

并澄清;嵌套节点没有任何问题。但是,保持平坦通常会更好,具体取决于您的用例。因此,如果您不需要,请不要过度复杂化。

哦,你的Firebase结构正好点亮了。继续这样做。