как удалить документ из firebase

#javascript #firebase #vue.js #google-cloud-firestore #vuetify.js

#javascript #firebase #vue.js #google-облако-firestore #vuetify.js

Вопрос:

Мне нужно удалить один документ из firebase, нажав на его значок. Проблема в том, что я не знаю, как пометить конкретный идентификатор каждого документа в vuetify

это моя карточка (1 карточка на 1 проект)

   <v-card flat v-for="project in projects" :key="project.title">
    <v-layout row wrap :class="`pa-3 project ${project.status}`">
      <v-flex xs12 md6>
        <div class="caption grey--text">Project title</div>
        <div>{{ project.title }}</div>
      </v-flex>
      <v-flex xs6 sm4 md2>
        <div class="caption grey--text">Person</div>
        <div>{{ project.person }}</div>
      </v-flex>
      <v-flex xs6 sm4 md2>
        <div class="caption grey--text">Due by</div>
        <div>{{ project.due }}</div>
      </v-flex>
      <v-flex xs2 sm4 md2>
      <v-btn flat color='red' slot='activator' class='right mx-0 my-0' @click='deleteProject()'>
      <v-icon>delete</v-icon>
     </v-btn>
        <div>
          <v-chip small :class="`${project.status} white--text caption mx-0`">{{ project.status}}</v-chip>
        </div>
      </v-flex>
    </v-layout>
    <v-divider></v-divider>
  </v-card>
  

И этим методом я пытаюсь написать

 deleteProject() {
  console.log('deleted');
  let idP = element.id; // obviously that i have problem with this line
  db.collection('projects').doc(idP).delete()
}
  

Комментарии:

1. большое спасибо, но на данный момент у меня ошибка, сообщающая мне, что я неправильно указываю элемент, который хочу удалить, поэтому я думаю, что проблема в переменной idP

Ответ №1:

Я думаю, что вы выполняете выборку projects из firebase , и вы всегда будете получать идентификатор для документа firebase, который вы извлекаете. Вы должны сохранить это id вместе с остальными значениями. После этого, когда вы вызываете свою deleteProject функцию, вы можете передать свою Id в эту функцию следующим образом.

 <v-btn flat color='red' slot='activator' class='right mx-0 my-0' @click='deleteProject(project.Id)'>
  

И затем получите идентификатор в вашей функции следующим образом

 deleteProject(Id) {
  console.log('deleted');
  db.collection('projects').doc(Id).delete()
}
  

Надеюсь, это решит вашу проблему.

Комментарии:

1. да! большое спасибо, ты лучший!

2. @ЕкатеринаКасютич Happy to help 🙂