我正在构建一个使用firebase-auth
元素进行身份验证的Polymer应用。我使用password
提供程序和on-login
属性的回调方法。回调方法设置为在调用测试时记录到控制台。如果我在登录时加载页面,我在控制台中看到一个日志行,表示当元素重新连接到现有会话时也会调用on-login
回调,而不仅仅是在新登录时完成。但是,当我手动登录时,我在控制台中看到日志行两次,表明我的回调被引用了两次。
1)为什么被叫两次?有没有办法只调用一次?
2)有没有办法将回调绑定到登录操作,而不是后续页面加载?我可以从我提交登录的代码中调用回调方法,但这并没有考虑登录失败。
<firebase-auth id="auth" user="{{user}}" status-known="{{statusKnown}}" location="https://my-app.firebaseio.com/" provider="password" on-login="onLogin" on-error="onLoginError" on-logout="onLogout"></firebase-auth>
app.onLogin = (e) ->
console.log "Logged in user #{app.user.uid}."
答案 0 :(得分:0)
最终以问题的方式解决了这个问题:分两部分。
1)这实际上是firebase-auth
元素中的一个错误。它已在提交37d1f69中解决。
2)出于我的目的,我构建了一个使用标志(通常为false
)的变通方法,该标志在调用登录时设置为true
并在消耗后设置回false
通过回调中的条件。