【问题标题】:Firebase data structure for Profiles配置文件的 Firebase 数据结构
【发布时间】:2017-04-28 12:33:33
【问题描述】:

我目前正在努力思考如何根据它的功能构建我的应用程序的数据库结构。

当用户向我的 Firebase 后端注册帐户时,系统会提示他们输入其“配置文件 1”的信息。姓名、年龄、联系信息和图片将加载到此个人资料中。

然后他们可以选择创建一个包含完全相同数据的附加个人资料:姓名、年龄等。他们可以继续创建更多个人资料。

所以我现在想弄清楚的是如何安排我的数据库以支持这种结构。一个用户,多个“组”数据/配置文件。 因此,当他们稍后在创建了多个配置文件时打开应用程序时,他们将能够选择加载哪一个。因此需要某种机制告诉数据库加载特定的数据集/配置文件。

希望我对此有所了解。比我想象的更难解释。 提前致谢!

【问题讨论】:

  • 一个问题;当您说包含完全相同数据的附加配置文件时,该重复数据的功能是什么?如果它完全相同,那么你真的只需要存储一次。也许您的意思是它复制了可以更改的数据?

标签: firebase firebase-realtime-database


【解决方案1】:

这个怎么样

users
  uid_0
    defaultProfile: "-YN9998ijssios"
    profiles
      -Yhnaiosioajsd
          profileName: "profile 1"
          name: "Bill"
          age: "102"
          contactInfo: "bill@dudes.com"
      -YN9998ijssios
          profileName: "profile 2"
          name: "Bill"
          age: "102"
          contactInfo: "bill@dudes.com"
      -YP989jsmskooo
          profileName: "profile 3"
          name: "Bill"
          age: "102"
          contactInfo: "bill@dudes.com"

您还可以将配置文件分离到一个单独的节点中,这会使数据扁平化(一件好事),但它可能不是必需的,因为它是一对多的关系,用户与他们的配置文件。

当您观察要加载它的用户节点时,获取存储在 defaultProfile 子节点中的值并从加载的快照(字典)中选择它。该代码只是对节点的基本观察(读取)。

我的回答

This Question

如果您需要一些示例,几乎是完全相同的代码模式 (Swift)。

【讨论】:

  • 这看起来确实很合乎逻辑。但我猜“uid_0”是用户的 ID。我可以看到“个人资料”将是持有即将到来的个人资料孩子的孩子。但是“defaultProfile...xx”应该是/功能是什么?
  • @Benni defaultProfile 孩子会很好,其中一个配置文件是默认配置文件。如果用户有 10 个配置文件,那么其中之一将是他将使用的“主要”配置文件。如果用户决定使用不同的配置文件作为他们的主要配置文件,则将该键存储为 defaultProfile 的值。它没有包含在您的问题中,但我添加了它以防您想使用这些方面的东西。是的,uid 将是用户 ID,这是 Firebase 中的典型设计模式。
猜你喜欢
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多