我尝试将新的Polymer-2.x与Polyfire连接到firebase,此演示项目仅显示地点列表并使用firebase身份验证,以确保只有注册用户才能访问该地点列表。
但是我无法使firebase-authentication工作,并且没有这个项目的样本,唯一的样本是Polymer-1.x并且仍然使用带有Polymer对象的旧代码。
这里是我的一些代码,地方列表运行良好,它可以正确获取firebase数据库,但脚本不要求身份验证,因为我不明白如何在ES6中调用它。
HTML部分:
<firebase-app
auth-domain="blablabla.firebaseapp.com"
database-url="https://blablabla.firebaseio.com"
api-key="blablabla"
storage-bucket="blablabla.appspot.com"
messaging-sender-id="blablabla">
</firebase-app>
<firebase-auth id="auth" user="{{ user }}" provider="google" on-error="handleError">
</firebase-auth>
查看部分:
<firebase-query
id="query"
path="/places"
data="{{ places }}">
</firebase-query>
<ul>
<template is="dom-repeat" items="{{ places }}" as="item">
<li>[[ item.name ]]</li>
</template>
</ul>
脚本部分:
<script>
class MyView1 extends Polymer.Element {
static get is() {
return 'my-view1';
}
static get properties() {
return {
places: {
type: Object
}
}
}
}
window.customElements.define(MyView1.is, MyView1);
</script>
问题是,如何使用这个新的ES6脚本调用弹出认证或任何firebase-authentication方法?
答案 0 :(得分:0)
我最近刚将我的firebase项目从polymer1移到了2,尽管它还没有100%工作,但似乎聚合物火元素确实有效。
你不能打电话:
loginGoogle() {
var that = this;
this.$.auth.signInWithPopup().then(function(result) {
// This gives you a Google Access Token
var token = result.credential.accessToken;
// The signed-in user info
var user = result.user;
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
console.log('Error during the login', errorCode, errorMessage);
});
}