2016-12-26 2 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リピート内のタグを持っている必要がありますでしょうか?しかし、それはどのように非同期で動作しますか?

それは正しい方法ではありませんか?

ありがとうございました。

+0

反復?/usersノード内の各ユーザーへの特定のパスを知っているので、それぞれを照会する必要はありません。 – Jay

+0

返信いただきありがとうございます!問題はプロジェクト/ [project_id] /ユーザーの下では私はユーザーキーの一覧を取得するだけで、ユーザーのフルレコードを取得できます。だから、キーを取得したら、まだ完全なレコードを取得する必要があります。 – Hubert

+0

各キーを繰り返し、そのノードのデータを読み込みます。すなわち、/ users/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で :UIDのPROJECT_ID /ユーザーのノードに位置し、各1を読んオーバー

<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

関連する問題