2016-12-26 54 views
0

我试图做一些理论上应该很简单。我有以下数据结构在火力地堡:加入询问聚合物和firebase

- projects 
-- 1 
--- name: some project 
--- organisation: awesome organisation 
--- users 
---- uid1: true 
---- uid2: true 

- users 
-- uid1 
--- name: Bob 
--- email: [email protected] 
--- tel: 020 3456 3456 
-- uid2 
--- name: tom 
--- email: [email protected] 
--- tel: 020 3456 3456 

我有一个从父元素传递一个项目的ID,我想显示所有该项目的用户。

<dom-module id="project-users"> 
    <template> 

    <firebase-query 
     id="query" 
     path="/projects/{{project.id}}/users" 
     data="{{users}}"> 
    </firebase-query> 

    <template is="dom-repeat" items="{{users}}" as="u"> 
     user key: [[u.$key]] 
     <!-- now do something to retrieve the full user record and display it --> 
    </template> 

    </template> 
</dom-module> 

然后我如何得到每个用户的完整用户记录,我需要在dom-repeat内部有一个标签吗?但那么这将如何异步工作?

或者这不是正确的方法吗?

非常感谢您的帮助。

+0

遍历的UID设在PROJECT_ID /用户节点和阅读各一?因为您知道/ users节点中每个用户的特定路径,所以您甚至不需要查询每个用户。 – Jay

+0

感谢您的回复!问题是,在项目/ [project_id] /用户下,我只能得到用户密钥列表,不能完整记录用户。所以,一旦我有了钥匙,我仍然需要获得完整的记录。 – Hubert

+0

迭代每个密钥并读取该数据节点。即读取/用户/ uid1,然后阅读users/uid2等 – Jay

回答

2

我会在这里重新发布我的解决方案,因为我无法弄清楚如何在评论格式代码:-)

最后,我最后决定将每个用户记录在它自己的组件,如:

<dom-module id="project-users"> 
    <template> 

    <firebase-query 
     id="query" 
     path="/projects/{{project.id}}/users" 
     data="{{users}}"> 
    </firebase-query> 

    <template is="dom-repeat" items="{{users}}" as="u"> 
     <user-details uid=[[u.$key]]></user-details> 
    </template> 

    </template> 
</dom-module> 

然后在用户details.html:

<dom-module id="user-details"> 
    <template> 

    <firebase-document 
     path="https://stackoverflow.com/users/[[uid]]" 
     data="{{u}}"> 
    </firebase-document> 

    [[u.name]]<br /> 
    [[u.email]]<br /> 
    [[u.tel]]<br /> 

    </template> 
</dom-module> 
+1

这是一个优雅的解决方案! – gthmb

+0

我想知道这是否有任何缺点与性能相比,在普通的JavaScript中的Firebase连接? – Niklas