如何使用 polymer-2x 进行 Firebase 身份验证
How to do firebase authentication with polymer-2x
我正在尝试使用新的 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 身份验证方法?
我最近将我的 firebase 项目从 polymer1 移到了 2,虽然它还没有 100% 工作,但似乎 polymerfire 元素确实工作了。
你不能直接打电话:
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);
});
}
我正在尝试使用新的 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 身份验证方法?
我最近将我的 firebase 项目从 polymer1 移到了 2,虽然它还没有 100% 工作,但似乎 polymerfire 元素确实工作了。
你不能直接打电话:
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);
});
}