#javascript #html #firebase #vue.js #google-cloud-firestore
#javascript #HTML #firebase #vue.js #google-облако-firestore
Вопрос:
Здравствуйте, я использую установленную версию из VueJs
с, которая работает нормально, я также импортировал MaterializeCss
, это тоже работает нормально, и я импортировал firebase firestore
все в index.html
файл. Но когда я пытаюсь использовать db
variable
в другом vue
файле, он говорит, что db
это не определено.Я не понимаю, почему я получаю эту ошибку, потому Materializecss
что работает нормально. Вот мой HTML-файл.
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>test</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<script src="https://www.gstatic.com/firebasejs/8.2.6/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.2.6/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.2.6/firebase-firestore.js"></script>
<script>
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
var firebaseConfig = {
apiKey: "AIzaSyBl17wo7ihuMdACz_iZ3T9rRYZ4_yjSRtI",
authDomain: "school-boeken.firebaseapp.com",
projectId: "school-boeken",
storageBucket: "school-boeken.appspot.com",
messagingSenderId: "164926430822",
appId: "1:164926430822:web:a97b3f7bdcec364beb97a7",
measurementId: "G-M7QE3Y21N2"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
firebase.analytics();
var db = firebase.firestore();
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
</body>
</html>
Комментарии:
1. Пожалуйста, добавьте код, чтобы показать, как вы это пробовали.
2. Есть ли у вас что-то вроде
import firebase from '@/plugins/firebase.js';
иconst db = firebase.firestore();
в файле Vue, в котором вы хотите его использовать?3. Да, я пробовал это, но это выдало мне сообщение об ошибке: модуль не найден: Ошибка: не удается разрешить ‘@/plugins/firebase.js ‘
4. Это потому, что для этого вам нужно создать
firebase.js
файл в вызываемом каталогеplugins
, в который добавьте это firebaseConfig и т. Д. И экспортируйте его. Если у вас другая файловая структура, это тоже нормально, конечно.
Ответ №1:
Попробуйте подключиться firebase
в main .js
import Vue from 'vue'
import App from './App.vue'
import firebase from 'firebase/app'
import 'firebase/firestore'
export const db = firebase.initializeApp({
apiKey: "AIzaSyBl17wo7ihuMdACz_iZ3T9rRYZ4_yjSRtI",
authDomain: "school-boeken.firebaseapp.com",
projectId: "school-boeken",
storageBucket: "school-boeken.appspot.com",
messagingSenderId: "164926430822",
appId: "1:164926430822:web:a97b3f7bdcec364beb97a7",
measurementId: "G-M7QE3Y21N2"
}).firestore()
export const firestore = firebase.firestore()
new Vue({
render: h => h(App)
}).$mount('#app')
Затем в компонентах, которые вы можете использовать
import {db} from '@/main.js'
Комментарии:
1. Зачем это
main.js
делать? Не лучше ли просто сделать это в собственномfirebase.js
файле?2. Я согласен. Возможно, вы правы. Я согласен. Возможно, вы правы. Но этот вариант имеет право на жизнь)