【发布时间】:2020-04-19 20:15:18
【问题描述】:
我正在尝试在具有自动文档 ID 的餐厅文档下创建一个新集合。我的新路径将是 /restaurants/restaurant(具有自动生成的 doc id 的文档)/我的新集合
我在这一行出现错误
db.collection('restaurants').doc(doc.id).add( {
这是我的代码
<script>
import PictureInput from 'vue-picture-input'
import firebase from 'firebase';
require('@/firebase/init')
const db = firebase.firestore()
export default {
name: 'Newentry',
data() {
return {
menuTitle: null,
foodName: null,
menuItemDescription: null,
menuItemInfo: null,
inputCalories: null,
image: null,
imageURL: null,
feedback: null
}
},
components: {
PictureInput
},
methods: {
onChanged() {
if(this.$refs.pictureInput.file) {
this.image = this.$refs.pictureInput.file
} else {
console.log("Please add image")
}
},
onRemoved() {
this.image = ''
},
addFood() {
if(!this.menuTitle) {
this.feedback = "Please enter a menu title in Menu Section Name"
} else if(!this.foodName) {
this.feedback = "Please enter a food name in Menu Item Name"
} else if(!this.menuItemDescription) {
this.feedback = "Please enter a description in Menu Item Description"
} else if(!this.menuItemInfo) {
this.feedback = "Please enter an info in Menu Item Info"
} else if(!this.inputCalories) {
this.feedback = "Please enter calory in Calorie"
} else if (!this.image) {
this.feedback = "Please add a photo"
} else {
this.feedback = null
// set and upload image to database and get its url
const storageRef=firebase.storage().ref(`${this.image.name}`).put(this.image)
storageRef.snapshot.ref.getDownloadURL().then((url) => {
this.imageURL = url
})
// get current user
let user = firebase.auth().currentUser
// find restaurant that same ownerid
db.collection('restaurants').where('ownerID', '==', user.uid).get()
.then(snapshot => {
snapshot.forEach((doc) => {
db.collection('restaurants').doc(doc.id).add( {
foodLine: {
menuTitle: this.menuTitle
},
food: {
foodName: this.foodName,
menuItemDescription: this.menuItemDescription,
menuItemInfo: this.menuItemInfo,
inputCalories: this.inputCalories,
imageURL: this.imageURL
}
}).then(() => {
this.menuTitle = ''
this.foodName = ''
this.menuItemDescription = ''
this.menuItemInfo = ''
this.inputCalories = ''
this.image = ''
}).catch(err => {
console.log(err)
})
})
})
}
}
}
}
</script>
我搜索论坛,但没有一个能解决我的问题。
【问题讨论】:
标签: firebase vue.js google-cloud-firestore