我正在学习聚合物。到目前为止,我喜欢它,但这让我很难过。我正在使用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会两次开火?
答案 0 :(得分:2)
这是一个已知问题,正在等待回答:https://github.com/GoogleWebComponents/firebase-element/pull/67
除此之外,您可以使用Firebase正常工作。
如果您有兴趣,请看一下这里,我正在创建一个扩展Firebase基本功能的集合:https://github.com/MeTaNoV/firebase-element-extended