如何使用 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);
        });
    }