Firebase:FacebookAuthProvider不是构造函数

时间:2017-07-19 22:51:45

标签: javascript firebase vue.js firebase-authentication vuejs2

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

这个问题是:

  

未捕获的TypeError: 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)
    }
}

这似乎与该行有关:

var provider = new sphinx.FacebookAuthProvider()

但我仍然是JS的新手,但我认为这个问题与ES6环境中的new有关?如果是这样,我该如何改变呢。

1 个答案:

答案 0 :(得分:2)

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

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

var provider = new firebase.auth.FacebookAuthProvider()