构建Firebase数据

时间:2017-08-03 11:04:56

标签: firebase firebase-realtime-database nosql

我在为Firebase构建数据时遇到了一些困难。我有用途和房间。每个用户可以加入多个房间,每个房间可以有多个用户。

这是我现在的设置:

enter image description here

我将所有房间ID保存在链接设备(room_info)。所有链接的设备都在密钥下 - >在房间孩子的device_info。我在那里保存设备名称以便快速查找。

我使用此网页来验证我的想法: https://www.firebase.com/docs/web/guide/structuring-data.html

有什么可以做得更好吗?

我想保存设备状态(如果设备在线)。我想在房间钥匙下创建一个device_state孩子。我想保存在线的所有设备ID。并在离线时删除它们。这是一个好方法吗?

1 个答案:

答案 0 :(得分:3)

您需要知道构建Firebase数据库没有完美的解决方案。最佳解决方案是满足您需求的解决方案,使您的工作更轻松。考虑到一切都是为了观点,我建议你记住一些事情。

  1. 深度不是影响技术水平速度的因素。 Firebase可以在级别30上快速查找级别为30的节点。性能的快速主要影响因素是您的应用读取/写入size of the data以及available bandwidth

  2. Denormalization是Firebase中的常见做法。

  3. 如果我们谈论可伸缩性,我们还需要记住,firebase中的一个重要规则是尽可能地使数据变得扁平。请参阅以下帖子Structuring your Firebase Data correctly for a Complex App,以便更好地理解。

  4. 但是,根据您的使用情况,保持数据平稳通常会更好。因此,如果您不需要,请不要过度复杂化您的结构。不要仅仅为了使数据库非规范化而使用非规范化。

    1. 另一个想法是让您的数据始终可以重复使用。
    2. 关于您的实际Firebase数据库结构,如果您可以轻松查询以获取所需数据,请继续使用它。如果您需要更多信息,我建议您访问上面的链接。

      如果您有SQL背景,我还建议您查看本教程The Firebase Database For SQL Developers

      关于你的上一个问题,是的,这是一个非常好的方法。

      希望它有所帮助。