Javascript 如何为单击的文档获取自动生成的id

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

我使用vue和firestore

我通过下面的代码在集合中生成了文档

<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。我想知道当我单击表单中的“删除”按钮时,创建一个删除表单的代码。感谢您的回答。但这似乎有所不同。我没有尝试此操作,因为我尝试了另一个答案,但我现在正在尝试。也感谢您为我腾出时间。