2016-08-17 118 views
0

我有一个Polymer应用程序,我想使用Firebase身份验证。我创建了一个带有电子邮件和密码表单的<paper-dialog>自定义元素。如何验证Polymer自定义元素中的Firebase用户?

如果我在自定义元素中包含<firebase-app><firebase-auth>元素,我可以对用户进行身份验证。到现在为止还挺好。

当我想通过根元素中的按钮/函数从应用程序中签出用户时出现问题。我需要弄清<firebase-auth>元素才能调用它的signOut方法。我找到<firebase-auth>元素$.id$$('#id'),但它返回null。

如果我将<firebase-auth><firebase-app>元素移动到根元素中,那么尝试从我的自定义登录元素访问它们时遇到同样的问题。

如果我只是<firebase-auth>元素添加到这两个地方,我得到'No app configured for auth',如果我的<firebase-app>元素添加到两个为好,我得到'Default app already defined'

我该如何做这项工作?

+0

您可以将您的实际代码样本不工作吗?从你的描述中,不清楚问题出在哪里。 –

+0

问题是,我已经尝试过几种解决方案,但我无法使其中的任何一项工作。我不确定我可以为每个选项添加代码。 – kpg

回答

0

我无法在我的<signin-dialog>中找到处理验证的解决方案。什么工作对我来说是离开<firebase-app><firebase-auth>在我的顶级<app>元素,然后从<signin-dialog>触发一个事件,并调用<firebase-auth>签到从evenHandler menthod在<app>

<app> 
<iron-ajax auto url="https://apiserver/config" handle-as="json" last-response="{{config}}"></iron-ajax> 

     <template is="dom-if" if="{{config}}"> 
      <firebase-app auth-domain="{{config.fbWebConfig.authDomain}}" database-url="{{config.fbWebConfig.databaseURL}}" api-key="{{config.fbWebConfig.apiKey}}"> 
      </firebase-app> 
      <firebase-auth id="auth" name='auth' user="{{user}}" on-error="handleAuthError"> 
      </firebase-auth> 
      <signin-dialog user={{user}}></signin-dialog> 
     </template> 
</app> 
0

在您的按钮功能可以只需调用以下JavaScript将用户从Firebase中签名即可:

firebase.auth().signOut(); 
相关问题