我正在处理vuejs + firebase项目,并且尝试导入firestore,但是当我访问我的页面时,这会显示在控制台中:ReferenceError:未定义
我试图将导入部分放在mount()中,但是它说我需要将导入内容放在顶部,这就是我所做的
这是在我的html(register.html)正文下方:
<script src="https://www.gstatic.com/firebasejs/6.4.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/6.4.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/6.4.0/firebase-firestore.js"></script>
<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#config-web-app -->
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyCNYH-sKZZXZhZt5LxQSDqwet7OTo5KgHM",
authDomain: "thelogoagency-3a11d.firebaseapp.com",
databaseURL: "https://thelogoagency-3a11d.firebaseio.com",
projectId: "thelogoagency-3a11d",
storageBucket: "",
messagingSenderId: "101296201242",
appId: "1:101296201242:web:00d0e7e3554b518d"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="register.js"></script>
register.js的顶部
// Required for side-effects
require("firebase/firestore");
var app = new Vue({
el: "#root",
data: {
burgerClass: "navbar-burger",
menuClass: "navbar-menu",
mobileMenuIsActive: "",
mobileMenuHasBeenClicked: false,
firstNameInput: "",
lastNameInput: "",
emailInput: "",
passwordInput: "",
authError : "",
emailErrorClass : "",
emailErrorHelp : "",
passwordErrorClass : "",
passwordErrorHelp : "",
inputClass: "input ",
nameErrorHelp: "",
isLoading: false,
firebase: firebase,
db: null,
numberOfInit: 0
},
并安装()
if(this.numberOfInit = 0)
firebase.initializeApp({
apiKey: 'AIzaSyCNYH-sKZZXZhZt5LxQSDqwet7OTo5KgHM',
authDomain: 'thelogoagency.tk',
projectId: '1:101296201242:web:00d0e7e3554b518d'
});
this.db = firebase.firestore();
this.numberOfInit ++
this.db.collection("users").add({
first: "Ada",
last: "Lovelace",
born: 1815
})
.then(function(docRef) {
console.log("Document written with ID: ", docRef.id);
})
.catch(function(error) {
console.error("Error adding document: ", error);
});
}
它通常应该可以正常工作,因为它是从firebase的文档复制过来的。 我知道我可能做错了所有的事情:)感谢您的帮助
答案 0 :(得分:0)
仅在使用npm并编译JS代码时才使用需求符号。我认为您打算只使用CDN脚本标记,以便可以删除require行。
答案 1 :(得分:0)
在npm上安装firebase-admin和firebase,然后尝试使用此“ require('firebase-admin')”代替require(“ firebase / firestore”); ,以及给您的注释,无法在客户端运行后端服务
答案 2 :(得分:0)
如果您使用的是Javascript,而不是NodeJS,则只需将您的lib链接到
<script src="https://my/lib.js"></script>
因此您可以删除require
行:)
答案 3 :(得分:0)
因此,我尝试仅删除require()内容,但现在控制台向我记录以下内容: 添加文档时出错:FirebaseError:“缺少权限或权限不足。”
感谢您回答我的问题,我有点受阻:)
答案 4 :(得分:0)
我固定的方式是,我只删除了这两行!
const firebase = require("firebase");
require("firebase/firestore");
如果您使用的是JavaScript,而不是NodeJS,则不需要。
您只需要这些CDN
<script src="https://www.gstatic.com/firebasejs/8.0.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.0.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.0.1/firebase-firestore.js"></script>
并开始消防:
firebase.initializeApp(firebaseConfig);
var db = firebase.firestore();