【发布时间】:2020-05-01 15:10:16
【问题描述】:
我收到Uncaught ReferenceError: auth is not defined at auth.js:2 的一个奇怪问题,但我确信它已经在 index.html 中定义,因为注册和登录工作正常。但它仍然在 AuthState 中显示错误。这段代码有什么问题?
// AuthState
auth.onAuthStateChanged(user => {
if (user) {
console.log('user logged in: ', user);
} else {
console.log('user logged out');
}
});
// Signup
const signupForm = document.querySelector('#signupForm');
if(signupForm)
{
signupForm.addEventListener('submit', (e) => {
e.preventDefault();
const email = signupForm['signupemail'].value;
const password = signupForm['signuppassword'].value;
auth.createUserWithEmailAndPassword(email, password).then(cred => {
console.log(cred.user);
signupForm.reset();
});
});
}
// Login
const loginForm = document.querySelector('#loginForm');
if(loginForm)
{
loginForm.addEventListener('submit', (e) => {
e.preventDefault();
const email = loginForm['loginemail'].value;
const password = loginForm['loginpassword'].value;
auth.signInWithEmailAndPassword(email, password).then((cred) => {
console.log(cred.user);
loginForm.reset();
});
});
}
这是我将这段代码放在正文部分底部的 index.html 页面代码。
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-firestore.js"></script>
<script src="scripts/index.js"></script>
<script src="scripts/auth.js"></script>
<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-analytics.js"></script>
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
authDomain: "xxxxxxxxxxxxxxxxxxxxxx",
databaseURL: "xxxxxxxxxxxxxxxxxxxxxx",
projectId: "xxxxxxxxx",
storageBucket: "xxxxxxxxxxxxx",
messagingSenderId: "xxxxxxxxxxxxx",
appId: "x:xxxxxxx:xxxx:xxxxxxxxxxxxxxxxx",
measurementId: "G-xxxxxxxxxxx"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
firebase.analytics();
const auth = firebase.auth();
const db = firebase.firestore();
</script>
所以,上面是代码.......................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................
【问题讨论】:
-
如果您遇到错误,那么您的假设是错误的。
auth究竟是如何定义的?您发布的任何内容都无法解释这一点。 -
好的,我的意思是如果 Auth 定义不正确,那么为什么登录和注册工作正常?
-
什么时候出现这个错误,
auth是从哪里导入的? -
您的代码在任何函数之外引用
auth,因此必须在最初解释脚本时对其进行定义。
标签: javascript firebase firebase-authentication