我第一次使用 firebase 并堅持這個我無法修復的錯誤。
基本上我有一個主螢屏和一個登錄螢屏。當我運行 onBeforeMount 檢查用戶是否登錄時,我收到以下錯誤:
Uncaught ReferenceError: onAuthStateChanged is not defined
at eval (webpack-internal:///./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/App.vue?vue&type=script&lang=js:12:7)
at callWithErrorHandling (webpack-internal:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js:357:18)
at callWithAsyncErrorHandling (webpack-internal:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js:367:17)
at Array.hook.__weh.hook.__weh (webpack-internal:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js:3388:19)
at invokeArrayFns (webpack-internal:///./node_modules/@vue/shared/dist/shared.esm-bundler.js:648:11)
at ReactiveEffect.componentUpdateFn [as fn] (webpack-internal:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js:6089:70)
at ReactiveEffect.run (webpack-internal:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js:237:19)
at setupRenderEffect (webpack-internal:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js:6294:5)
at mountComponent (webpack-internal:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js:6029:5)
at processComponent (webpack-internal:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js:5979:9)
這是我的 main.js 檔案中的內容:
import { createApp } from 'vue'
import App from './App.vue'
import './registerServiceWorker'
import router from './router'
import { initializeApp } from "firebase/app";
const firebaseConfig = {
apiKey: "Censored",
authDomain: "Censored",
projectId: "Censored",
storageBucket: "Censored",
messagingSenderId: "Censored",
appId: "Censored"
};
const app = initializeApp(firebaseConfig);
createApp(App).use(router).mount('#app')
這是我的 app.vue 檔案中的腳本
<script>
import { onBeforeMount } from "vue";
import router from "@/router";
import { getAuth } from "firebase/auth";
export default {
setup() {
onBeforeMount(() => {
const auth = getAuth();
onAuthStateChanged(auth, (user) => {
if (!user) {
router.replace("/login");
} else if (route.path == "/login" || route.path == "/signup") {
router.replace("/");
}
});
});
},
};
</script>
uj5u.com熱心網友回復:
onAuthStateChanged 需要匯入到
從“firebase/auth”匯入 { getAuth, onAuthStateChanged }
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/454473.html
標籤:javascript 火力基地 firebase 身份验证 Vuejs3
上一篇:React-Native-Firebase傳播auth().currentUser物件{...auth().currentUser}
