如何使用polymer-2x进行firebase身份验证

时间:2017-08-31 13:06:57

标签: firebase firebase-authentication polymer-2.x polymerfire

我尝试将新的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方法?

1 个答案:

答案 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);
        });
    }