繁体   English   中英

Firebase存储数据最佳实践

[英]Firebase storing data best practices

我正在开发一个使用Firebase的应用。

您知道存储数据的最佳方式吗?

我已经阅读了他们关于构建数据的最佳实践的文档,但没有提供有关id的建议。

使用我的应用程序,一旦用户注册了他们的用户信用点,就会添加它并为它们创建一个配置文件。

这将存储到“配置文件”文档中,如下所示:

profile
      -> uniqueId (generated by Firebase)
                 -->  uid (unique Firebase generated uid)
                 -->  email
                 -->  password

然而,在我的下一个名为“设置”的文档中,这个设置不同......

唯一ID不存在,它使用这样的uid

settings
        ->  uid (Firebase user Id - not a unqiue id)
               -->   setting1
               -->   setting2
               -->   setting3

因此,就最佳实践而言,让Firebase生成唯一ID然后拥有uid并不是更好吗? 像个人资料文件?

或者我这样做对吗?

Firebase文档建议尽可能保持结构平整。 所以我的想法是。 但后来我担心索引。 这会有性能问题吗?

另外如果最好有这样的设置文件......

settings
         -> uniqueId
                -->     uid (user Id)
                -->     settings1
                -->     settings2

那么它是否会使特定userId的访问设置变得复杂。 并且不应该将配置文件设置为与设置相同的方式?

可能没有更好的选择,但我有兴趣听到想法。

非常感谢

uid 一个唯一的id,所以在像/ users节点这样的情况下使用它们的uid作为父节点名称是很好的。

此外,如果每个用户都有自己的设置,那么将它们包含在/ users / uid / node中很酷。

“更好更好”是座右铭,但有时候扁平化实际上可能使事情过于复杂化。 在这种情况下,用户登录并读取其设置。 完成。 您不会查询它或进行任何类型的交叉引用查找,因此请将其与其他用户数据保持一致。

一般来说,你走在正确的轨道上:

使用自动创建的id是一种很好的做法 - 这允许您取消节点名称与其包含的数据的关联。

诸如电子邮件地址和人名之类的东西,以及任何可能发生变化的东西都不是最好的节点名称,因为它们可能会在您的结构中的其他200个地方引用,例如,如果电子邮件地址发生变化,您将不得不寻找200个地方并执行更新。 (电子邮件地址也有特殊字符,因此您必须按摩它们才能使它们正常工作。)

使用自动生成的节点名称,您可以更改一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM