Javascript 如何为单击的文档获取自动生成的id
我使用vue和firestore 我通过下面的代码在集合中生成了文档Javascript 如何为单击的文档获取自动生成的id,javascript,firebase,vue.js,google-cloud-firestore,Javascript,Firebase,Vue.js,Google Cloud Firestore,我使用vue和firestore 我通过下面的代码在集合中生成了文档 <template> <input type="text" v-model="form.title"> </template> methods: { async saveform () { await db.collection('forms').add( { title: this.title
<template>
<input type="text" v-model="form.title">
</template>
methods: {
async saveform () {
await db.collection('forms').add(
{
title: this.title
}
)
}
}
<div v-for="(form, i) in forms" :key="form.id">
{{form.title}}
<button @click="readid">readid</button>
<button @click="deleteform">delete</button>
</div>
async created () {
const sn = await db.collection('forms').get()
sn.forEach(doc => {
const { title } = doc.data()
this.forms.push({
title
})
})
方法:{
异步存储格式(){
等待db.collection('forms')。添加(
{
标题:this.title
}
)
}
}
我通读了下面的代码
<template>
<input type="text" v-model="form.title">
</template>
methods: {
async saveform () {
await db.collection('forms').add(
{
title: this.title
}
)
}
}
<div v-for="(form, i) in forms" :key="form.id">
{{form.title}}
<button @click="readid">readid</button>
<button @click="deleteform">delete</button>
</div>
async created () {
const sn = await db.collection('forms').get()
sn.forEach(doc => {
const { title } = doc.data()
this.forms.push({
title
})
})
{{form.title}
雷迪德
删除
异步创建(){
const sn=await db.collection('forms').get()
序号forEach(文件=>{
const{title}=doc.data()
这是推({
标题
})
})
我想通过单击上面代码中的readit按钮来获取所单击表单的ID
因为要使用db.collection('forms').doc().delete()
这是因为我需要知道单击表单的ID,才能将ID放入doc()
请帮帮我,Firestore官方文件不足以处理自动生成的id
请评论,如果没有足够的解释。我愿意编辑。
在我弄明白之前我是不会睡觉的,所以我可以随时编辑它
-编辑-
很抱歉,我没有正确解释。我不仅知道id。我想创建一个代码,在单击表单中的“删除”按钮时删除表单
我想我会更改问题并再次发布。要获取已创建文档的
id
,可以使用以下代码:
const formSnap=await db.collection('forms')。添加(
{
标题:this.title
}
)
//你的身份证
console.log('id',formSnap.id)
如果您想在添加任何数据之前获取id
,可以这样做:
const ref=db.collection(“forms”).doc();
console.log('id',ref.id)
如果您在循环中需要它:
异步创建(async){
const sn=await db.collection('forms').get()
序号forEach(文件=>{
const{title}=doc.data()
console.log('id',doc.id)//它在循环中
这是推({
标题
})
})
要通过单击按钮删除表单数据,首先需要将formID
值存储在某个位置,然后使用它删除表单数据:
方法:{
异步存储格式(){
const formSnap=await db.collection('forms')。添加(
{
标题:this.title
}
)
返回formSnap.id
},
异步删除表单(fID){
等待数据库集合('forms').doc(fID).delete()
}
}
这样称呼它:
等待删除表单(formID)
在我的应用程序中,我可以使用以下代码:
let response = await firestore.collection("db").doc(dbId).get();
this.file = response.data();
console.log("doc id", response.id);
所以我认为这应该是可行的:
const sn = await db.collection('forms').get();
sn.forEach(doc => {
const { title } = doc.data()
const id = doc.id // <-- This is it
this.forms.push({
title
});
})
// Your Template
<div v-for="(form, i) in forms" :key="form.id">
{{form.title}}
<button @click="readid">readid</button>
<button @click="deleteform(form.id)">delete</button>
</div>
// Your created hook
async created () {
const sn = await db.collection('forms').get();
sn.forEach(doc => {
const { title } = doc.data()
const id = doc.id // <-- This is it
this.forms.push({
title,
id,
});
})
}
// And your function for deleting the document
async deleteform(docId) {
await db.collection('forms').doc(docId).delete()
}
const sn=await db.collection('forms').get();
序号forEach(文件=>{
const{title}=doc.data()
const id=doc.id//{
const{title}=doc.data()
const id=doc.id//对不起,我不明白。我不知道我的自动生成的idI想获取已经创建的文档的id。这是答案中的第一个代码段。你试过了吗?或者你需要forEach
循环中的id吗?对不起,我没有正确解释。我不知道id。我想知道当我单击表单中的“删除”按钮时,创建一个删除表单的代码。感谢您的回答。但这似乎有所不同。我没有尝试此操作,因为我尝试了另一个答案,但我现在正在尝试。也感谢您为我腾出时间。