Firebase:FacebookAuthProvider 不是构造函数

Posted

技术标签:

【中文标题】Firebase:FacebookAuthProvider 不是构造函数【英文标题】:Firebase: FacebookAuthProvider is not a constructor 【发布时间】:2017-12-25 10:05:01 【问题描述】:

我正在构建一个小应用程序并希望通过 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)
    

好像跟这条线有关:

var provider = new sphinx.FacebookAuthProvider()

但我对 JS 还是很陌生,但我认为这个问题与 ES6 环境中的 new 有关?如果是这样,我该如何改变。

【问题讨论】:

var provider = new firebase.auth.FacebookAuthProvider(); @EricGuan 做到了!为什么呢?我导入了firebase,然后分配给sphinx。啊!没关系,因为我试图访问 firebaseApp 而不是 firebase.... 您能否解释一下这些差异。仅引用随机变量名称无济于事 【参考方案1】:

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

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

var provider = new firebase.auth.FacebookAuthProvider()

【讨论】:

以上是关于Firebase:FacebookAuthProvider 不是构造函数的主要内容,如果未能解决你的问题,请参考以下文章

无法解决:com.google.firebase:firebase-ml-vision:24.1.3;无法解决:com.google.firebase:firebase-core:20.0.2

没有创建 Firebase 应用“[DEFAULT]” - 在 Flutter 和 Firebase 中调用 Firebase.initializeApp()

如何修复 Firebase 9.0 导入错误? “尝试导入错误:‘firebase/app’不包含默认导出(导入为‘firebase’)。”

Firebase 持久化,清除 Firebase 缓存

Firebase 存储不会下载并添加到 firebase 数据库

将 Firebase 身份验证与 Firebase 数据库连接