raw*_*yad 1 javascript authentication firebase firebase-authentication
我正在尝试创建 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;
});
}
Run Code Online (Sandbox Code Playgroud)
小智 7
导致此错误的 Firebase 的一个常见问题是您的脚本是否在 Firebase 之前加载。例如,当使用 Firebase 托管时,他们会创建这些标签:
<script defer src="/__/firebase/6.0.2/firebase-app.js"></script>
...
<script defer src="/__/firebase/init.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后您还需要使用 defer 加载脚本
<script defer src="js/app.js"></script>
Run Code Online (Sandbox Code Playgroud)
您收到此错误是因为firebase变量尚未在您运行代码的页面上实例化和初始化。为此,您需要-
包括相关的脚本-
<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您的代码正在使用的库。
使用 - 初始化您的应用程序
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);
Run Code Online (Sandbox Code Playgroud)要了解更多信息,请参阅 - https://firebase.google.com/docs/web/setup