Polymer firebase-auth on-success事件触发两次

时间:2015-12-09 01:40:54

标签: firebase polymer

我正在学习聚合物。到目前为止,我喜欢它,但这让我很难过。我正在使用Firebase作为我正在开发的应用程序的后端。

我有以下代码:

<!doctype html>
<html>
  <head>
    <script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
    <link rel="import" href="bower_components/firebase-element/firebase-auth.html">
  </head>
  <body>
    <template is="dom-bind" id="my-template">
      <firebase-auth id="firebase" 
        user="{{user}}" 
        status-known="{{statusKnown}}" 
        location="https://****.firebaseio.com"
        provider="password"
        on-error="onError"
        on-login="onSuccess"
        on-logout="onSuccess">
      </firebase-auth>
      <div>status: {{statusKnown}}</div>
      <div>user: {{user.uid}}</div>
      <button on-tap="login">login</button>
      <button on-tap="logout">logout</button>
    </template>
    <script>
      document.addEventListener('WebComponentsReady', function() {
        var template = document.getElementById('my-template');
        var fb = document.getElementById('firebase');
        template.login = function() {
          fb.login({email: 'email@example.com', password: 'password'});
        };
        template.logout = function() {
          console.log('logout', this);
          fb.logout();
        };
        template.onError = function(e) {
          console.log('onError', e);
        };
        template.onSuccess = function(e) {
          console.log('onSuccess', e);
        };
      });      
    </script>
  </body>
</html>

当我点击“登录”时,我在控制台中看到了这一点:

onSuccess Event {isTrusted: false, detail: Object}
onSuccess Event {isTrusted: false, detail: Object}

我的问题是,为什么onSuccess会两次开火?

1 个答案:

答案 0 :(得分:2)

这是一个已知问题,正在等待回答:https://github.com/GoogleWebComponents/firebase-element/pull/67

除此之外,您可以使用Firebase正常工作。

如果您有兴趣,请看一下这里,我正在创建一个扩展Firebase基本功能的集合:https://github.com/MeTaNoV/firebase-element-extended