【问题标题】:How get the id of an document from vuejs and firestore?如何从 vuejs 和 firestore 获取文档的 id?
【发布时间】:2021-01-05 14:34:16
【问题描述】:

我有这段代码可以从 firestore 获取所有文档:

const getThemesList = async ({ commit }) => {
  const snapshot = await firebase
    .firestore()
    .collection('themes')
    .get();
  const promiseThemes = snapshot.docs.map(doc => doc.data());
  commit(types.GET_THEMES, promiseThemes);
};

通过我可以列出的功能,每个项目都有一个删除按钮:

<v-btn text @click="deleteTheme(item)">
        Delete
      </v-btn>

每个项目只有这些参数:

{
description: (...)
name: (...)
type: (...)
}

但是如果我没有他们的 id,我如何删除一个项目?

db.collection('themes')
    .doc(theme.id)
    .delete()
    .then(function() {

我怎样才能得到身份证?主题.id?

编辑 1: 我对@DougStevenson 的回答有这个错误

【问题讨论】:

  • 您可能应该将文档的 id 保留在客户端,这样您就可以通过 id 查询(并相应地删除)
  • @DenisTsoi 我只在前端工作
  • 如果您没有id,则需要根据文档进行查询-并希望您的firebase可以找到该文档(并删除它)
  • @DenisTsoi 你能创建你的答案吗_?
  • 一秒钟 - 现在正在处理另一个问题

标签: firebase vue.js google-cloud-firestore


【解决方案1】:

doc 是具有 id 属性的 DocumentSnapshot。只需将文档 ID 添加到您生成的每个项目对象中:

const promiseThemes = snapshot.docs.map(doc => {id: doc.id, ...doc.data());

现在您有了一个带有id 属性的对象,您可以使用它来删除文档。

【讨论】:

  • 根据您对问题的编辑,您没有完全使用我提供的内容。
  • 我不确定这意味着什么。您唯一的目标是将文档的 id 注入映射到每个 DocumentSnapshot 的对象中。您可以按照自己喜欢的方式进行操作。
  • 我放了一张新图片
猜你喜欢
  • 1970-01-01
  • 2020-12-05
  • 2018-09-03
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 2021-11-14
  • 2019-07-04
相关资源
最近更新 更多