2017-01-12 25 views
1

我创建了一个用户并使用主元素中的<firebase-auth>(具有下面的代码片段)登录,但我只能检索该主元素(而不是子元素)中的用户信息。如何使用儿童元素中的聚合火力访问当前用户?

<firebase-auth 
     id="auth" 
     app-name="Carecollector" 
     provider="google" 
     signed-in="{{signedIn}}" 
     user="{{user}}"> 
    </firebase-auth> 

如何在子元素中检索有关当前用户的信息? 我应该在需要当前用户信息的每个其他元素内创建一个<firebase-auth>元素吗?

回答

1

正如其他人所说的,在要检索用户信息的子元素中放入一个< firebase-auth>。还要为该子元素添加一个属性,并使用Polymer的数据绑定系统将该属性公开给您的元素。假设你要访问一个子元素的用户数据,

HTML

下降< 火力-auth的>在你的元素像这样;

<firebase-auth user="{{currentuser}}"></firebase-auth> 

SCRIPT

<script> 
    Polymer({ 
     is: 'your-element-name', 
     properties:{ 
      currentuser: Object 
    }); 
</script> 

然后你就可以得到的,例如,用户的显示名这样的:

<div>[[currentuser.displayName]]</div> 

就是这样。

2

刚落,另一个火力点-auth的任何地方,你需要访问当前用户

+0

我刚刚在另一个元素中删除了另一个firebase-auth,但是当我尝试访问它时,用户属性的值为空。我目前正在使用铁米作为此 –

+0

的工作周,这绝对应该工作。你不应该使用铁元。其他事情是错误的。 –

1

瑞恩·泰勒说:“刚落,另一个火力点-auth的任何地方,你需要访问当前用户”,我投了,因为它只是WASN没错!

我已经证明你没有权限访问用户,通过频繁的测试和调试来找出这个问题。未定义,null,除此之外的任何用户!

除非他是正确的......并且除非您为该属性或类似的东西设置了观察者,否则您永远不会知道它。因为用户值在填充时填充,对于像我这样的JavaScript新手而言,我从来没有想过这个,并在填充之前一直试图访问它。有时需要一两秒钟。