【问题标题】:Firestore does not delete documentFirestore 不删除文档
【发布时间】:2022-01-04 00:41:49
【问题描述】:

我有一个非常简单的结构

Surveys (Collection)
|- survey (Document)

我只是尝试删除它,因为我在这里找到的所有示例和问题都假设:

deleteSurvey: (survey: Survey, user: firebase.User) => {
    logging.dev('Delete survey for: ' + survey.owner);
    const documentReference = firebase.firestore().collection('Surveys').doc(survey.id);

    if (survey.owner === user.uid) {
        documentReference
            .delete()
            .then(() => {
                logging.dev('Survey for ' + user.uid + ' has been deleted!');
            })
            .catch((error) => {
                logging.dev(error);
            });
    }
},

完全相同的查询适用于.get(),survey.id 是文档 uid。

我什至减少了我的规则(只是为了测试)

match /databases/{database}/documents {
  match /Surveys/{survey} {
    allow read, write;
  }
}

...但是没有抛出错误,是的,文档确实存在并且没有子集合,只有字段。我仍然可以获取它并且它不是用斜体写的。我真的不明白我在这里做错了什么。

【问题讨论】:

  • 下面的答案是否解决了您的问题?如果是这样,请考虑接受/支持它,以便社区会觉得这很有帮助。
  • 谢谢,但不,它没有。

标签: reactjs google-cloud-firestore


【解决方案1】:

您可以通过类似的方式获取删除函数返回的内容

deleteSurvey: async (survey: Survey, user: firebase.User) => {
    logging.dev('Delete survey for: ' + survey.owner);
    const documentReference = firebase.firestore().collection('Surveys').doc(survey.id);

    if (survey.owner === user.uid) {
        return await documentReference
            .delete()
            .then((res) => {
                logging.dev(res);
                logging.dev('Survey for ' + user.uid + ' has been deleted!');
            })
            .catch((error) => {
                logging.dev(error);
            });
    }
},

您也可以在一个操作中同时执行这两项操作,而不是将引用存储在一个常量中,例如:

firebase.firestore().collection('Surveys')
    .doc(survey.id)
    .delete()
    .then((res)=>{
        console.log(res)
    })

【讨论】:

  • 我需要参考,因为有不同的用例,我想删除的方式和内容。 firestore 中的删除功能什么都不返回,所以我认为这对我没有帮助。我的主要问题是,什么都没有被删除,而不是我想知道什么。也许退货声明具有误导性,我已将其删除。 ty :)
  • 我觉得自己像个彻头彻尾的白痴——代码就像一个魅力,我设法将一个没有 id 的缓存对象传递给这个函数。我仍然希望 API 拒绝没有标识符的删除请求。但我发现了我的错误,感谢您查看它。
  • 呃,这发生在我们所有人身上!很高兴你把它修好了:)
猜你喜欢
  • 2019-02-03
  • 1970-01-01
  • 2021-07-01
  • 2020-09-01
  • 1970-01-01
  • 2019-01-12
  • 2021-10-16
  • 2020-10-28
  • 2019-07-26
相关资源
最近更新 更多