Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firestore使用vue js检查文档是否存在_Javascript_Node.js_Firebase_Vue.js_Google Cloud Firestore - Fatal编程技术网

Javascript Firestore使用vue js检查文档是否存在

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

我想先登记一下文件是否存在。如果文档不存在,则显示表单;如果文档存在,则隐藏表单并显示另一个带文本的div。代码可以工作,但只有在我硬重新加载时才能工作。我怎样才能解决这个问题

如果文档不存在,则会出现此问题。您创建了一个帐户

如果文档确实存在,则会出现此问题。(您有个人资料)

Firestore

vue的模板

<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);
}
}
}