Join 使用polymer和firebase连接查询

Join 使用polymer和firebase连接查询,join,firebase,polymer,firebase-realtime-database,Join,Firebase,Polymer,Firebase Realtime Database,我正在尝试做一些理论上应该很简单的事情。我在Firebase中具有以下数据结构: - projects -- 1 --- name: some project --- organisation: awesome organisation --- users ---- uid1: true ---- uid2: true - users -- uid1 --- name: Bob --- email: bob@test.com --- tel: 020 3456 3456 -- uid2 ---

我正在尝试做一些理论上应该很简单的事情。我在Firebase中具有以下数据结构:

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

- users
-- uid1
--- name: Bob
--- email: bob@test.com
--- tel: 020 3456 3456
-- uid2
--- name: tom
--- email: tom@test.com
--- 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>

用户密钥:[[u.$key]]
然后,我将如何获得每个用户的完整用户记录,我是否需要在dom repeat中有一个标记?但是,这将如何异步工作呢

或者这不是正确的方法吗


非常感谢您的帮助。

我将在这里重新发布我的解决方案,因为我不知道如何在注释中格式化代码:-)

最终,我将每个用户记录放在自己的组件中,如下所示:

<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>

然后在user-details.html中:

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

    <firebase-document 
      path="/users/[[uid]]" 
      data="{{u}}">
    </firebase-document>

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

  </template>
</dom-module>

[[u.name]]
[[u.email]]
[[u.tel]]

我将在这里重新发布我的解决方案,因为我不知道如何在注释中格式化代码:-)

最终,我将每个用户记录放在自己的组件中,如下所示:

<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>

然后在user-details.html中:

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

    <firebase-document 
      path="/users/[[uid]]" 
      data="{{u}}">
    </firebase-document>

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

  </template>
</dom-module>

[[u.name]]
[[u.email]]
[[u.tel]]

迭代位于project\u id/users节点中的uid,并在中读取每个uid?您甚至不需要查询每个用户,因为您知道/users节点中每个用户的具体路径。感谢您的回复!问题是,在projects/[project\u id]/users下,我只获取用户密钥列表,而不获取完整的用户记录。所以,一旦我得到了密钥,我仍然需要得到完整的记录。迭代每个密钥并读入该节点的数据。i、 e.先读/users/uid1,然后读users/uid2等等。我第一次做这件事时遇到了麻烦,因为我在做类似的事情:`[[user.name]`当然[[user.name]]对每个用户总是有相同的值。。。因此,最终我的解决方案是将完整用户记录的输出放在它自己的组件中?您甚至不需要查询每个用户,因为您知道/users节点中每个用户的具体路径。感谢您的回复!问题是,在projects/[project\u id]/users下,我只获取用户密钥列表,而不获取完整的用户记录。所以,一旦我得到了密钥,我仍然需要得到完整的记录。迭代每个密钥并读入该节点的数据。i、 e.先读/users/uid1,然后读users/uid2等等。我第一次做这件事时遇到了麻烦,因为我在做类似的事情:`[[user.name]`当然[[user.name]]对每个用户总是有相同的值。。。因此,最终我的解决方案是将完整用户记录的输出放在它自己的组件中。这是一个优雅的解决方案!我想知道与普通JavaScript中的firebase连接相比,这在性能方面是否有任何缺点?这是一个优雅的解决方案!我想知道与普通JavaScript中的firebase连接相比,这在性能方面是否有任何缺点?