【发布时间】:2022-06-11 08:07:07
【问题描述】:
我无法将数据添加到名为“用户”的 Firestore 集合中。我在控制台中没有收到任何错误,但输入值没有被输入到 Firestore 集合中。
这是我的SignupView 组件,输入数据将被添加到 Firestore 集合中。
<template>
<div class="container">
<br>
<br>
<form @submit.prevent="registerUser">
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Name</label>
<input type="text" class="form-control" aria-describedby="emailHelp" v-model="user.name">
</div>
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" v-model="user.email">
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1" v-model="user.password">
</div>
<p v-if="errMsg"> {{ errMsg}} </p>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</template>
<script>
//import { Firestore } from '@firebase/firestore';
import {getAuth, createUserWithEmailAndPassword } from 'firebase/auth'
import router from "../router"
import { dbItemAdd } from "../Firebase";
//import firebase from'firebase/firestore'
export default {
name:'SignupView',
data(){
return{
user:{
name:'',
email:'',
password:'',
uid:''
},
errMsg: ''
//ref:firebase.firestore().collection('users')
}
},
methods: {
registerUser(){
const auth = getAuth();
createUserWithEmailAndPassword(auth, this.user.email, this.user.password).then((datauser)=>{
dbItemAdd.add({
name: this.user.name,
email: this.user.email,
uid: datauser.user.uid,
})
router.push({
name:'home'
})
}).catch((error) => {
console.log(error.code)
switch (error.code) {
case "auth/invalid-email":
this.errMsg = "Invalid email";
break;
case "auth/weak-password":
this.errMsg = "weak password";
break;
case "auth/email-already-in-use":
this.errMsg = "email already in use";
break;
}
})
}
},
}
</script>
这是我的 Firebase 初始化的 Firebase.js 文件。
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
import {firebase} from "firebase/firestore"; // Your web app's Firebase configuration
//import firestore from "firebase/compat"
// Add the Firebase services that you want to use
import "firebase/auth";
import "firebase/firestore";
var firebaseConfig = {
apiKey: "AIzaSyDip-bxxBA459wQ6Nx0vAp_vFrEmlWOACk",
authDomain: "mystore-3f6bf.firebaseapp.com",
projectId: "mystore-3f6bf",
storageBucket: "mystore-3f6bf.appspot.com",
messagingSenderId: "139527527392",
appId: "1:139527527392:web:3de39212b280729c846985",
measurementId: "G-7S411KB5ZK"
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
// const timestamp = firebase.firestore.FieldValue.serverTimestamp;
// const fb = firebase;
const dbItemAdd = firebase.firestore().collection("users");
export { dbItemAdd };
export default { app, analytics};
【问题讨论】:
-
您没有检查数据库操作的错误。他们可能会失败,而你永远不会知道。 add 返回一个承诺。
-
请问我不能添加收藏怎么办
-
错误消息:
-
编译时出现问题:./src/Firebase.js 中的 X 错误 3:0-32 未找到模块:错误:包路径。未从包 /home/dataxplorer/projectvuejs/node_modules/firebase 导出(请参阅 /home/dataxplorer/projectvuejs/node_modules/firebase/package.json 中的导出字段)
标签: javascript firebase vue.js google-cloud-firestore