Join 使用polymer和firebase连接查询
我正在尝试做一些理论上应该很简单的事情。我在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 ---
- 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连接相比,这在性能方面是否有任何缺点?