Javascript Firestore使用vue js检查文档是否存在
我想先登记一下文件是否存在。如果文档不存在,则显示表单;如果文档存在,则隐藏表单并显示另一个带文本的div。代码可以工作,但只有在我硬重新加载时才能工作。我怎样才能解决这个问题 如果文档不存在,则会出现此问题。您创建了一个帐户 如果文档确实存在,则会出现此问题。(您有个人资料) Firestore vue的模板Javascript Firestore使用vue js检查文档是否存在,javascript,node.js,firebase,vue.js,google-cloud-firestore,Javascript,Node.js,Firebase,Vue.js,Google Cloud Firestore,我想先登记一下文件是否存在。如果文档不存在,则显示表单;如果文档存在,则隐藏表单并显示另一个带文本的div。代码可以工作,但只有在我硬重新加载时才能工作。我怎样才能解决这个问题 如果文档不存在,则会出现此问题。您创建了一个帐户 如果文档确实存在,则会出现此问题。(您有个人资料) Firestore vue的模板 <template> <div> <v-container> <v-row v-if=&q
<template>
<div>
<v-container>
<v-row v-if="openProfile">
<v-col class="centerAll" cols="6">
<h1 class="text-center">Send account request</h1>
<v-form lazy-validation @keyup.enter="createProfile()">
<v-text-field label="Username" v-model="profile.username" required></v-text-field>
<v-select :items="role" label="Role" v-model="profile.role"></v-select>
<v-btn color="success" @click="createProfile()" class="mr-4">Send</v-btn>
</v-form>
</v-col>
</v-row>
<v-row v-else>
<v-col class="centerAll" cols="6">
<h1 class="text-center">Try again</h1>
</v-col>
</v-row>
</v-container>
</div>
</template>
<script>
import firebase from 'firebase';
/*eslint-disable-line*/import { db } from '../../Database';
var d = new Date();
var day = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
var date = day + '-' + month + '-' + year
export default {
firestore: {
Profile: db.collection('Profile')
},
data() {
return {
openProfile: false,
Profile: [],
currentUser: firebase.auth().currentUser.uid,
profile: {
username: '',
role: '',
email: firebase.auth().currentUser.email,
userId: null
},
role: ['Admin', 'Customer', 'Sales Person', 'Foreman', 'Warehouse Worker', 'Truck Driver', 'Forklift Driver']
}
},
methods: {
async createProfile() {
const data = {
username: this.profile.username,
email: this.profile.email,
role: this.profile.role,
userId: firebase.auth().currentUser.uid,
createdAt: date,
haveAccess: false
};
const res = await db.collection('Profile').doc(this.currentUser).set(data);
console.log(res + data)
this.profile.username = '';
}
},
created() {
if(firebase.auth().currentUser) {
this.currentUser = firebase.auth().currentUser.uid;
this.currentEmail = firebase.auth().currentUser.email;
console.log(this.currentUser);
}
const Profile = db.collection('Profile').doc(String(this.currentUser));
const doc = Profile.get();
if (doc.exists == this.currentUser) {
console.log('There is a document');
} else {
this.openProfile = true
console.log('No such document! ' + this.openProfile);
}
}
}
</script>
发送帐户请求
发送
再试一次
脚本文件
<template>
<div>
<v-container>
<v-row v-if="openProfile">
<v-col class="centerAll" cols="6">
<h1 class="text-center">Send account request</h1>
<v-form lazy-validation @keyup.enter="createProfile()">
<v-text-field label="Username" v-model="profile.username" required></v-text-field>
<v-select :items="role" label="Role" v-model="profile.role"></v-select>
<v-btn color="success" @click="createProfile()" class="mr-4">Send</v-btn>
</v-form>
</v-col>
</v-row>
<v-row v-else>
<v-col class="centerAll" cols="6">
<h1 class="text-center">Try again</h1>
</v-col>
</v-row>
</v-container>
</div>
</template>
<script>
import firebase from 'firebase';
/*eslint-disable-line*/import { db } from '../../Database';
var d = new Date();
var day = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
var date = day + '-' + month + '-' + year
export default {
firestore: {
Profile: db.collection('Profile')
},
data() {
return {
openProfile: false,
Profile: [],
currentUser: firebase.auth().currentUser.uid,
profile: {
username: '',
role: '',
email: firebase.auth().currentUser.email,
userId: null
},
role: ['Admin', 'Customer', 'Sales Person', 'Foreman', 'Warehouse Worker', 'Truck Driver', 'Forklift Driver']
}
},
methods: {
async createProfile() {
const data = {
username: this.profile.username,
email: this.profile.email,
role: this.profile.role,
userId: firebase.auth().currentUser.uid,
createdAt: date,
haveAccess: false
};
const res = await db.collection('Profile').doc(this.currentUser).set(data);
console.log(res + data)
this.profile.username = '';
}
},
created() {
if(firebase.auth().currentUser) {
this.currentUser = firebase.auth().currentUser.uid;
this.currentEmail = firebase.auth().currentUser.email;
console.log(this.currentUser);
}
const Profile = db.collection('Profile').doc(String(this.currentUser));
const doc = Profile.get();
if (doc.exists == this.currentUser) {
console.log('There is a document');
} else {
this.openProfile = true
console.log('No such document! ' + this.openProfile);
}
}
}
</script>
从“firebase”导入firebase;
/*eslint从“../../Database”禁用行*/import{db};
var d=新日期();
var day=d.getDate();
变量月份=d.getMonth()+1;
var year=d.getFullYear();
变量日期=日+'-'+月+'-'+年
导出默认值{
firestore:{
Profile:db.collection('Profile')
},
数据(){
返回{
openProfile:false,
个人资料:[],
currentUser:firebase.auth().currentUser.uid,
简介:{
用户名:“”,
角色:“”,
电子邮件:firebase.auth().currentUser.email,
userId:null
},
角色:[“管理员”、“客户”、“销售人员”、“工头”、“仓库工人”、“卡车司机”、“叉车司机”]
}
},
方法:{
异步createProfile(){
常数数据={
用户名:this.profile.username,
电子邮件:this.profile.email,
角色:this.profile.role,
userId:firebase.auth().currentUser.uid,
createdAt:date,
haveAccess:false
};
const res=await db.collection('Profile').doc(this.currentUser).set(数据);
console.log(res+data)
this.profile.username='';
}
},
创建(){
if(firebase.auth().currentUser){
this.currentUser=firebase.auth().currentUser.uid;
this.currentEmail=firebase.auth().currentUser.email;
console.log(this.currentUser);
}
const Profile=db.collection('Profile').doc(字符串(this.currentUser));
const doc=Profile.get();
if(doc.exists==此.currentUser){
log(“有一个文档”);
}否则{
this.openProfile=true
log('没有这样的文档!'+this.openProfile);
}
}
}