【问题标题】:Firestore document not deletedFirestore 文档未删除
【发布时间】:2019-02-03 08:02:50
【问题描述】:

我正在尝试从 Firestore 中删除一个文档,我没有收到错误消息,但该文档仍在数据库中:简单地说,它一直在它所属的集合中。

云函数是:

exports.countdowns_crud = functions.https.onRequest((request, response) => {

    var req = request;
    var res = response;

    if (request.method === 'DELETE') {
        const countdownId = request.path.split('/')[1];

        const deleteOperation = db.DeleteCountdown(countdownId);

        if (!deleteOperation) {
            console.log('Delete operation result: ', deleteOperation);

            cors(req, res, () => {
                res.status(204).send("DELETED");
            });
        }
        else {
            console.error(addOperation);
            cors(req, res, () => {
                res.status(500).send("INTERNAL SERVER ERROR");
            });
        };

        return;
    }

    cors(req, res, () => {
        res.status(405).send("NOT ALLOWED");
        return;
    });

})

DeleteCountdown 函数在另一个模块中:

module.exports = {

  DeleteCountdown: (countdownId) => {
    const countdownsCollection = app.firestore.collection('countdowns');

    countdownsCollection.doc(countdownId).delete()
      .then((res) => {
        console.log('Result: ', res);
        return null;
      })
      .catch((e) => {
        console.error(`unable to delete the countdown ${countdowmnId}: ${e}`);
        return e;
      });
  }

}

这是谷歌云功能中的逻辑,我的反应应用程序在删除时正确调用了它。传递的 id 是正确的,没有返回错误,但是 doc 继续存在于集合中。

【问题讨论】:

  • 您的规则是否设置为允许删除? firebase.google.com/docs/firestore/security/…
  • 好吧,我没有。但仍然具有以下权限: service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write, update, delete; } } } 它既没有给我错误也没有删除文件。
  • 如果您在 Cloud Functions 中运行此功能,请编辑问题以显示无法按您期望的方式工作的整个最小功能。
  • 对不起,我做了一个更好的调试并修复了它。给定更改后 id 错误。拆分功能并不理想,这只是一个原型,我很快就会添加 express.js,所以我基本上会使用辅助工具进行 url 操作。谢谢。
  • 如果您不再需要这个问题,请删除它。

标签: reactjs google-cloud-firestore google-cloud-functions


【解决方案1】:

我遇到了同样的问题,没有错误,并且返回了 null(它工作时完全相同),因为我忘记设置规则以允许直接在 Firebase 控制台中或通过 firestore.rules 进行写入(或特别是删除)文件

【讨论】:

    猜你喜欢
    • 2020-10-28
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2020-09-01
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多