【发布时间】:2021-12-07 06:06:17
【问题描述】:
注册表单的思想是
- 将用户邮箱和密码添加到firebase auth,这样就成功了,那么
- 使用
uid作为文档ID 添加新文档并插入街道字段和值;到profile集合,失败且没有错误。
用户和邮箱添加到firebase控制台的auth用户,但是文档写入仍然不成功,控制台也没有错误。
一直在挠头。
这是我的代码
<template>
<v-form @submit.prevent="createUser">
<v-text-field
v-model="register.email"
label="Email"
required
/>
<v-text-field
v-model="register.password"
label="Password"
required
/>
<v-text-field
v-model="register.street"
required
label="Street"
/>
<v-btn
type="submit"
>
Register
</v-btn>
</v-form>
</template>
<script>
import Vue from 'vue'
import { createUserWithEmailAndPassword, onAuthStateChanged } from 'firebase/auth'
import { doc, setDoc } from 'firebase/firestore'
import { auth, db } from '~/plugins/firebase.js'
export default Vue.extend({
data () {
return {
register: {}
}
},
methods: {
async createUser () {
await createUserWithEmailAndPassword(
auth,
this.register.email,
this.register.password
).catch((error) => {
console.log(error.code)
console.log(error.message)
})
onAuthStateChanged(
auth,
(user) => {
if (user) {
const ref = doc(db, 'profile', user.uid)
const document = {
street: this.register.street
}
try {
setDoc(ref, document)
} catch (e) {
alert('Error!')
console.error(e.code)
console.error(e.message)
}
}
}
)
}
}
})
</script>
没有限制的firestore规则
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read;
allow write;
}
}
}
【问题讨论】:
标签: javascript firebase vue.js google-cloud-firestore nuxt.js