【问题标题】:Uncaught ReferenceError: firebase is not defined未捕获的 ReferenceError:未定义 firebase
【发布时间】:2017-08-13 00:55:23
【问题描述】:

我正在尝试创建 Google 身份验证,但我将 var provider = new firebase.auth.GoogleAuthProvider(); 复制到我的 JavaScript 中,它一直告诉我 Uncaught ReferenceError: firebase is not defined

这是我的代码:

var provider = new firebase.auth.GoogleAuthProvider();

function signin(){

  firebase.auth().signInWithPopup(provider).then(function(result) {

  var token = result.credential.accessToken;
  var user = result.user;

}).catch(function(error) {

  var errorCode = error.code;
  var errorMessage = error.message;
  var email = error.email;
  var credential = error.credential;

}); 
}

【问题讨论】:

    标签: javascript authentication firebase firebase-authentication


    【解决方案1】:

    导致此错误的 Firebase 的一个常见问题是,如果您的脚本在 Firebase 之前加载。例如,当使用 Firebase 托管时,他们会创建这些标签:

      <script defer src="/__/firebase/6.0.2/firebase-app.js"></script>
      ...
      <script defer src="/__/firebase/init.js"></script>
    

    您还需要使用 defer 加载脚本

      <script defer src="js/app.js"></script>
    

    【讨论】:

      【解决方案2】:

      您收到此错误是因为firebase 变量尚未在您运行代码的页面上实例化和初始化。为此,您需要 -

      1. 包括相关脚本-

        <script src="https://www.gstatic.com/firebasejs/4.1.3/firebase.js"></script> <script src="https://www.gstatic.com/firebasejs/4.1.3/firebase-auth.js"></script>

      firebase.js 包含变量 firebase 代表您的 Firebase 应用程序。 firebase-auth.js 包含您的代码正在使用的 firebase.auth 库。

      1. 使用 - 初始化您的应用程序 -

        var config = {
            apiKey: "<API_KEY>",
            authDomain: "<PROJECT_ID>.firebaseapp.com",
            databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
            storageBucket: "<BUCKET>.appspot.com",
            messagingSenderId: "<SENDER_ID>",
        };
        
        firebase.initializeApp(config);
        

      要了解更多信息,请参阅 - https://firebase.google.com/docs/web/setup

      【讨论】:

      • 当然可以,请问有没有什么方法可以联系你,比如 gmail 或其他......
      • 包括这两个脚本将给出一个未捕获的异常: auth: Firebase: Firebase service named 'auth' already registered (app/duplicate-service)... 只包括 firebase.js 就足够了...
      • 为什么我得到“供应商未定义”?有什么想法吗?
      猜你喜欢
      • 2016-10-20
      • 2016-04-30
      • 2020-10-08
      • 2021-06-17
      • 2023-01-23
      • 2016-11-03
      • 2011-01-05
      • 2016-01-02
      • 2013-10-06
      相关资源
      最近更新 更多