【问题标题】:Join queries with polymer and firebase使用聚合物和 Firebase 加入查询
【发布时间】:2016-12-28 07:25:39
【问题描述】:

我正在尝试做一些理论上应该很简单的事情。我在 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>

然后我将如何获取每个用户的完整用户记录,我是否需要在 dom-repeat 中有一个标签?但是那如何异步工作呢?

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

非常感谢您的帮助。

【问题讨论】:

  • 遍历位于 project_id/users 节点的 uid 并读取每一个?您甚至不需要查询每个用户,因为您知道 /users 节点中每个用户的具体路径。
  • 感谢您的回复!问题是在 projects/[project_id]/users 下我只得到用户密钥列表,bot 是完整的用户记录。所以,一旦我得到了钥匙,我仍然需要得到完整的记录。
  • 遍历每个键并读入该数据节点。即读取 /users/uid1 然后读取 users/uid2 等。
  • 我首先遇到了麻烦,因为我正在做类似的事情:` ` 当然还有 [[user.name]]每个用户总是有相同的值......所以,最终我的解决方案是将完整用户记录的输出放在它自己的组件中。

标签: join firebase polymer firebase-realtime-database


【解决方案1】:

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

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

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

【讨论】:

  • 这是一个优雅的解决方案!
  • 我想知道与纯 JavaScript 中的 firebase 连接相比,这在性能方面是否有任何缺点?
猜你喜欢
  • 1970-01-01
  • 2014-06-01
  • 2021-09-21
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-08
相关资源
最近更新 更多