Firebase Angular2族树结构

时间:2016-12-12 10:06:37

标签: angular firebase firebase-realtime-database

我正在创建一个具有许多相互依赖的用户的应用程序。

例如,当用户注册时,他输入了他得到的参考号 来自推荐他加入的人,所以这个过程将继续这样,直到它形成一个家谱层次。

这是另一个例子,伟大的奶奶将是她将她的钥匙交给奶奶的第一个用户(现在奶奶有两个钥匙,她自己的主要和祖母的参考钥匙)和奶奶将她的主键传给妈妈。现在妈妈将同时拥有(主键和外键)。如果她决定生孩子,那么该过程将以该方式继续进行。

现在我的问题是如何在firebase中的一个View中列出这一代从祖母到孩子这么多涉及如此多的密钥?

代码:

firebase.database().ref(users).orderBy('order by which key') ?

HTML:

<ul *ngFor="fam of family">
  <li fam[key].username></li>which key goes in here....?
</ul>

1 个答案:

答案 0 :(得分:2)

我将创建一个包含所有用户列表的族树节点:

families: {
  "MTQ4MTUzNzc0NDYwNw": {
    name: "smith",
    users: {
      "MTQ4MTUzNzc0NzU0Mw": true,
      "MTQ4MTUzNzc0OTk0NQ": true,
      "MTQ4MTUzNzc1MDg2OQ": true,
    }
  }
}

具有子/父属性的用户

users: {
  "MTQ4MTUzNzc0NzU0Mw": {
    nick: "gran",
    children: {
      "MTQ4MTUzNzc0OTk0NQ": true,
      "MTQ4MTUzODMzMDEyNQ": true,
    }, 
    parents: {
    }, 
  },
  "MTQ4MTUzNzc0OTk0NQ": {
    nick: "mom",
    children: {
    }, 
    parents: {
      "MTQ4MTUzNzc0OTk0NQ": true,
    }, 
  },
}

然后加载族树并在客户端处理它的用户。如果太多,您可以将JSON.stringify(client_side_family_tree)保留在那里。这只是数据结构,你必须弄清楚UI ......

PS。我知道奇怪的妈妈没有孩子:p