Firebase:FacebookAuthProvider 不是构造函数

Auz*_*uzy 7 javascript firebase vue.js firebase-authentication vuejs2

我正在构建一个小应用程序并希望通过 Facebook 对其进行身份验证。我在 Firebase 仪表板中启用了 Facebook 作为身份验证方法,提供了我的 Facebook 应用程序令牌和 Facebook 的身份验证 URI。

这个问题是这样的:

未捕获的类型错误:WEBPACK_IMPORTED_MODULE_0__firebase_config_js .a.FacebookAuthProvider 不是构造函数

这是有问题的 Vue JS 方法:

const sphinx = firebaseApp.auth()

methods: {
    signUp (event) {
      sphinx.getRedirectResult().then(function (result) {
        if (result.credential) {
          var token = result.credential.accessToken
        }
        var user = result.user
        console.log(token, user)
      })
      // Start a sign in process for an unauthenticated user.
      var provider = new sphinx.FacebookAuthProvider()
      sphinx.signInWithRedirect(provider)
    }
}
Run Code Online (Sandbox Code Playgroud)

它似乎与该行有关:

var provider = new sphinx.FacebookAuthProvider()
Run Code Online (Sandbox Code Playgroud)

但是我对 JS 还是比较陌生,但我认为这个问题与newES6 环境有关?如果是这样,我该如何改变这一点。

muj*_*ner 3

它不起作用的原因是,当您将 firebase 实例分配给sphinx变量时,您调用了 firebase 实例上的 auth 方法。同时,您正在寻找的方法位于 auth 对象本身中。

因此,访问您正在寻找的方法的正确方法是进入 auth 对象本身,如下所示:

var provider = new firebase.auth.FacebookAuthProvider()
Run Code Online (Sandbox Code Playgroud)